Menjalankan penyusun Api Data dalam kontainer Docker
Penyusun API Data (DAB) diterbitkan sebagai gambar kontainer ke Microsoft Container Registry. Setiap host Docker dapat menarik gambar kontainer dan menjalankan DAB dengan konfigurasi minimal. Panduan ini menggunakan gambar kontainer dan file konfigurasi lokal untuk menghosting dan menjalankan DAB dengan cepat tanpa perlu menginstal alat tambahan apa pun.
Prasyarat
- Docker
- Klien database (SQL Server Management Studio, Azure Data Studio, dll.)
- Jika Anda tidak memiliki klien yang terinstal, instal Azure Data Studio
Membuat data sampel
Untuk panduan singkat ini, tabel sederhana dengan beberapa baris data cukup untuk menunjukkan cara menggunakan DAB dalam kontainer Docker. Untuk menyederhanakan hal-hal lebih lanjut, kami menggunakan SQL Server untuk Linux dalam gambar kontainer Docker.
mcr.microsoft.com/mssql/server:2022-latest
Tarik gambar kontainer.docker pull mcr.microsoft.com/mssql/server:2022-latest
Jalankan gambar kontainer yang menerbitkan
1433
port dan atursa
kata sandi akun ke kata sandi unik yang Anda gunakan di seluruh panduan ini.docker run \ --name mssql \ --publish 1433:1433 \ --detach \ --env "ACCEPT_EULA=Y" \ --env "MSSQL_SA_PASSWORD=<your-password>" \ mcr.microsoft.com/mssql/server:2022-latest
Penting
Ini adalah kata sandi fiktiu sederhana untuk panduan ini. Di dunia nyata, Anda akan menggunakan mekanisme autentikasi yang berbeda dan idealnya akun yang berbeda.
Sambungkan ke server SQL menggunakan klien atau alat pilihan Anda. String koneksi adalah
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;
.Create database baru bernama
Library
jika belum ada.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE Library
Create tabel bernama
Books
dengan kolom , ,title
year
, danpages
id
.DROP TABLE IF EXISTS dbo.Books; CREATE TABLE dbo.Books ( id int NOT NULL PRIMARY KEY, title nvarchar(1000) NOT NULL, [year] int null, [pages] int null ) GO
Sisipkan empat contoh baris buku ke
Books
dalam tabel.INSERT INTO dbo.Books VALUES (1000, 'Practical Azure SQL Database for Modern Developers', 2020, 326), (1001, 'SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning', 2019, 444), (1002, 'Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals', 2020, 528), (1003, 'SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability', 2022, 506) GO
Uji data Anda dengan kueri sederhana
SELECT *
.SELECT * FROM dbo.Books
Membuat file konfigurasi
Create file konfigurasi yang memetakan ke tabel yang dibuat di langkah-langkah sebelumnya. File konfigurasi ini menjelaskan kepada DAB cara memetakan titik akhir REST dan GraphQL ke data Anda yang sebenarnya.
Buat file bernama
dab-config.json
.Tip
Ini adalah nama file default untuk file konfigurasi. Dengan menggunakan nama file default, Anda menghindari harus menentukan file konfigurasi saat menjalankan kontainer.
Tambahkan konten JSON ini ke file Anda. Konfigurasi ini membuat satu entitas bernama
book
yang dipetakan ke tabel yangdbo.Books
ada.{ "$schema": "https://github.com/Azure/data-api-builder/releases/latest/download/dab.draft.schema.json", "data-source": { "database-type": "mssql", "connection-string": "Server=host.docker.internal\\mssql,1433;Initial Catalog=Library;User Id=sa;Password=<your-password>;TrustServerCertificate=true;" }, "runtime": { "rest": { "enabled": true }, "graphql": { "enabled": true } }, "entities": { "book": { "source": "dbo.Books", "permissions": [ { "actions": [ "read" ], "role": "anonymous" } ] } } }
Menarik dan menjalankan gambar kontainer Docker
Jalankan DAB menggunakan gambar kontainer Docker yang dihosting di Microsoft Container Registry. Saat menjalankan gambar kontainer, pasang direktori sehingga DAB dapat membaca file konfigurasi.
mcr.microsoft.com/azure-databases/data-api-builder
Tarik gambar kontainer Docker.docker pull mcr.microsoft.com/azure-databases/data-api-builder
Jalankan kontainer yang
5000
menerbitkan port dan ikat pemasangandab-config.json
file.docker run \ --name dab \ --publish 5000:5000 \ --detach \ --mount type=bind,source=$(pwd)/dab-config.json,target=/App/dab-config.json,readonly \ mcr.microsoft.com/azure-databases/data-api-builder
Gunakan browser web untuk menavigasi ke
http://localhost:5000/api/book
. Output harus berupa array JSON item buku dari titik akhir REST API.{ "value": [ { "id": 1000, "title": "Practical Azure SQL Database for Modern Developers", "year": 2020, "pages": 326 }, { "id": 1001, "title": "SQL Server 2019 Revealed: Including Big Data Clusters and Machine Learning", "year": 2019, "pages": 444 }, { "id": 1002, "title": "Azure SQL Revealed: A Guide to the Cloud for SQL Server Professionals", "year": 2020, "pages": 528 }, { "id": 1003, "title": "SQL Server 2022 Revealed: A Hybrid Data Platform Powered by Security, Performance, and Availability", "year": 2022, "pages": 506 } ] }
Catatan
Panduan ini menggunakan koneksi HTTP. Saat menjalankan kontainer penyusun Api Data di Docker, Anda akan melihat bahwa hanya titik akhir HTTP yang dipetakan. Jika Anda ingin kontainer Docker Anda mendukung HTTPS untuk pengembangan lokal, Anda perlu memberikan sertifikat SSL/TLS Anda sendiri dan file kunci privat yang diperlukan untuk enkripsi SSL/TLS dan mengekspos port HTTPS. Proksi terbalik juga dapat digunakan untuk memberlakukan bahwa klien terhubung ke server Anda melalui HTTPS untuk memastikan bahwa saluran komunikasi dienkripsi sebelum meneruskan permintaan ke kontainer Anda.