Spuštění Tvůrce rozhraní API pro data v kontejneru Dockeru
Tvůrce rozhraní DATA API (DAB) se publikuje jako image kontejneru do služby Microsoft Container Registry. Každý hostitel Dockeru může stáhnout image kontejneru a spustit DAB s minimální konfigurací. Tato příručka používá image kontejneru a místní konfigurační soubor k rychlému hostování a spouštění DAB bez nutnosti instalovat další nástroje.
Požadavky
- Docker
- Databázový klient (SQL Server Management Studio, Azure Data Studio atd.)
- Pokud nemáte nainstalovaného klienta, nainstalujte Azure Data Studio.
Vytvoření ukázkových dat
V tomto krátkém průvodci stačí jednoduchá tabulka s několika řádky dat, abyste ukázali, jak používat DAB v kontejneru Dockeru. Pro další zjednodušení používáme SQL Server pro Linux v imagi kontejneru Dockeru.
Stáhněte image
mcr.microsoft.com/mssql/server:2022-latest
kontejneru.docker pull mcr.microsoft.com/mssql/server:2022-latest
Spusťte image kontejneru, která publikuje
1433
port a nastavísa
heslo účtu na jedinečné heslo, které používáte v této příručce.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
Důležité
Toto je jednoduché fiktivní heslo pro tuto příručku. V reálném světě byste použili jiný mechanismus ověřování a v ideálním případě jiný účet.
Připojte se k SQL Serveru pomocí preferovaného klienta nebo nástroje. Připojovací řetězec je
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;
.Create novou databázi s názvem
Library
, pokud ještě neexistuje.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE Library
Create tabulku se
Books
sloupciid
,title
year
, apages
.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
Vložte do tabulky čtyři ukázkové řádky
Books
knihy.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
Otestujte data pomocí jednoduchého
SELECT *
dotazu.SELECT * FROM dbo.Books
Vytvoření konfiguračního souboru
Create konfigurační soubor, který se mapuje na tabulku vytvořenou v předchozích krocích. Tento konfigurační soubor popisuje DAB, jak mapovat koncové body REST a GraphQL na skutečná data.
Vytvořte soubor s názvem
dab-config.json
.Tip
Toto je výchozí název souboru konfiguračních souborů. Použitím výchozího názvu souboru nemusíte při spuštění kontejneru zadávat konfigurační soubor.
Přidejte tento obsah JSON do souboru. Tato konfigurace vytvoří jednu entitu s názvem
book
namapovanou na existujícídbo.Books
tabulku.{ "$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" } ] } } }
Vyžádání a spuštění image kontejneru Dockeru
Spusťte DAB pomocí image kontejneru Dockeru hostované ve službě Microsoft Container Registry. Při spuštění image kontejneru připojte adresář, aby DAB mohl číst konfigurační soubor.
Stáhněte image kontejneru
mcr.microsoft.com/azure-databases/data-api-builder
Dockeru.docker pull mcr.microsoft.com/azure-databases/data-api-builder
Spusťte kontejner publikující
5000
port a vytvořte vazbu kdab-config.json
připojení souboru.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
Pomocí webového prohlížeče přejděte na
http://localhost:5000/api/book
. Výstupem by mělo být pole JSON s položkami knihy z koncového bodu rozhraní 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 } ] }
Poznámka
Tato příručka používá připojení HTTP. Při spouštění kontejneru Data API Builderu v Dockeru uvidíte, že se mapuje jenom koncový bod HTTP. Pokud chcete, aby kontejner Dockeru podporoval protokol HTTPS pro místní vývoj, musíte zadat vlastní certifikát SSL/TLS a soubory privátního klíče potřebné pro šifrování SSL/TLS a zveřejnit port HTTPS. Reverzní proxy server je také možné použít k vynucení, aby se klienti připojovali k vašemu serveru přes HTTPS a zajistili, že komunikační kanál bude před předáním požadavku do kontejneru zašifrovaný.