Uruchamianie konstruktora interfejsu API danych w kontenerze platformy Docker
Konstruktor interfejsu API danych (DAB) jest publikowany jako obraz kontenera w usłudze Microsoft Container Registry. Każdy host platformy Docker może ściągnąć obraz kontenera i uruchomić usługę DAB z minimalną konfiguracją. W tym przewodniku użyto obrazu kontenera i lokalnego pliku konfiguracji do szybkiego hostowania i uruchamiania narzędzia DAB bez konieczności instalowania dodatkowych narzędzi.
Wymagania wstępne
- Docker
- Klient bazy danych (SQL Server Management Studio, Azure Data Studio itp.)
- Jeśli nie masz zainstalowanego klienta, zainstaluj program Azure Data Studio
Tworzenie danych przykładowych
W tym krótkim przewodniku prosta tabela z kilkoma wierszami danych jest wystarczająca do zademonstrowania sposobu używania języka DAB w kontenerze platformy Docker. Aby jeszcze bardziej uprościć pracę, użyjemy SQL Server dla systemu Linux w obrazie kontenera platformy Docker.
Ściąganie obrazu kontenera
mcr.microsoft.com/mssql/server:2022-latest
.docker pull mcr.microsoft.com/mssql/server:2022-latest
Uruchom obraz kontenera publikując
1433
port i ustawiającsa
hasło konta na unikatowe hasło używane w tym przewodniku.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
Ważne
Jest to proste fikcyjne hasło dla tego przewodnika. W świecie rzeczywistym należy użyć innego mechanizmu uwierzytelniania i idealnie innego konta.
Nawiąż połączenie z serwerem SQL przy użyciu preferowanego klienta lub narzędzia. Parametry połączenia to
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;
.Twórca nową bazę danych o nazwie
Library
, jeśli jeszcze nie istnieje.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE Library
Twórca tabelę o nazwie
Books
z kolumnamiid
,title
,year
ipages
.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
Wstaw do
Books
tabeli cztery przykładowe wiersze książki.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
Przetestuj dane przy użyciu prostego
SELECT *
zapytania.SELECT * FROM dbo.Books
Tworzenie pliku konfiguracji
Twórca plik konfiguracji mapujący na tabelę utworzoną w poprzednich krokach. W tym pliku konfiguracji opisano sposób mapowania punktów końcowych REST i GraphQL na rzeczywiste dane w języku DAB.
Utwórz plik o nazwie
dab-config.json
.Porada
Jest to domyślna nazwa pliku konfiguracji. Używając domyślnej nazwy pliku, należy unikać określania pliku konfiguracji podczas uruchamiania kontenera.
Dodaj tę zawartość JSON do pliku. Ta konfiguracja tworzy pojedynczą jednostkę o nazwie
book
zamapowanej na istniejącądbo.Books
tabelę.{ "$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;" }, "entities": { "book": { "source": "dbo.Books", "permissions": [ { "actions": [ "read" ], "role": "anonymous" } ] } } }
Ściąganie i uruchamianie obrazu kontenera platformy Docker
Uruchom usługę DAB przy użyciu obrazu kontenera platformy Docker hostowanego w usłudze Microsoft Container Registry. Podczas uruchamiania obrazu kontenera zainstaluj katalog, aby program DAB mógł odczytać plik konfiguracji.
Ściąganie obrazu kontenera platformy
mcr.microsoft.com/azure-databases/data-api-builder
Docker.docker pull mcr.microsoft.com/azure-databases/data-api-builder
Uruchom kontener publikując
5000
port i powiąż instalowaniedab-config.json
pliku.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
Użyj przeglądarki internetowej, aby przejść do adresu
http://localhost:5000/api/book
. Dane wyjściowe powinny być tablicą JSON elementów książki z punktu końcowego interfejsu API REST.{ "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 } ] }
Uwaga
W tym przewodniku jest używane połączenie HTTP. Podczas uruchamiania kontenera konstruktora interfejsu API danych na platformie Docker zobaczysz, że jest mapowany tylko punkt końcowy HTTP. Jeśli chcesz, aby kontener platformy Docker obsługiwał protokół HTTPS na potrzeby programowania lokalnego, musisz podać własny certyfikat SSL/TLS i pliki kluczy prywatnych wymagane do szyfrowania SSL/TLS i uwidocznić port HTTPS. Zwrotny serwer proxy może również służyć do wymuszania, aby klienci nawiązywali połączenie z serwerem za pośrednictwem protokołu HTTPS, aby upewnić się, że kanał komunikacyjny jest szyfrowany przed przekazaniem żądania do kontenera.