Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Předpoklady
Vytvoření ukázkových dat
V tomto krátkém průvodci stačí jednoduchá tabulka s několika řádky dat, která ukazuje, 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 kontejneru
mcr.microsoft.com/mssql/server:2022-latest.docker pull mcr.microsoft.com/mssql/server:2022-latestSpusťte image kontejneru, která
1433publikuje port a nastavísaheslo účtu na jedinečné heslo, které používáte v rámci tohoto průvodce.docker run \ --name mssql \ --publish 1433:1433 \ --detach \ --env "ACCEPT_EULA=Y" \ --env "MSSQL_SA_PASSWORD=<your-password>" \ mcr.microsoft.com/mssql/server:2022-latestDůležité
Toto heslo je jednoduchá fiktivní hodnota pro tuto příručku. Ve skutečném světě byste použili jiný ověřovací mechanismus a ideálně 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;.Vytvořte 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 LibraryVytvořte tabulku pojmenovanou
Booksse sloupciid,title,yearapages.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 ) GOVložte do
Bookstabulky čtyři ukázkové řádky 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) GOOtestujte data pomocí jednoduchého
SELECT *dotazu.SELECT * FROM dbo.Books
Vytvoření konfiguračního souboru
Vytvořte konfigurační soubor, který odpovídá tabulce vytvořené v předchozích krocích. Tento konfigurační soubor vysvětluje DAB, jak mapovat koncové body REST a GraphQL na skutečná data.
Vytvořte soubor s názvem
dab-config.json.Návod
Tento název souboru je výchozí pro konfigurační soubory. Při použití výchozího názvu souboru se nemusíte při spouštění kontejneru zadávat konfigurační soubor.
Přidejte tento obsah JSON do souboru. Tato konfigurace vytvoří jednu entitu s názvem
booknamapovanou na existujícídbo.Bookstabulku.{ "$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" } ] } } }
Sestavení a spuštění vlastní image kontejneru Dockeru
Vytvořte vlastní image, která obsahuje dab-config.json, a pak ji spusťte místně.
Vytvořte soubor Dockerfile ve stejné složce jako
dab-config.json.FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonSestavte obraz.
docker build -t dab-local:1 .Spusťte kontejner pro publikování portu
5000.docker run \ --name dab \ --publish 5000:5000 \ --detach \ dab-local:1Pomocí webového prohlížeče přejděte na
http://localhost:5000/api/bookadresu . Výstup by měl být pole JSON položek 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 spuštění kontejneru Tvůrce rozhraní Data API v Dockeru uvidíte, že se mapuje pouze koncový bod HTTP. Pokud chcete, aby váš 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 vyžadované pro šifrování SSL/TLS a zveřejnit port HTTPS. Reverzní proxy server lze použít také k vynucení připojení klientů k vašemu serveru přes PROTOKOL HTTPS, aby se zajistilo, že komunikační kanál je před předáním požadavku do kontejneru šifrovaný.
Rozlišení portů
Tvůrce rozhraní DATA API určuje, který port HTTP se má použít pro interní operace (kontroly stavu, interní volání HTTP), a to pomocí této priority:
| Priorita | Proměnná prostředí | Poznámky |
|---|---|---|
| 1 | ASPNETCORE_URLS |
Parsuje první port ze seznamu adres URL (například http://*:8080). |
| 2 | ASPNETCORE_HTTP_PORTS |
Proměnná kontejneru .NET 8+. Použije první zadaný port. |
| 3 | DEFAULT_PORT |
Náhradní řešení specifické pro DAB. Není rozpoznáno platformou .NET ani službou Azure Container Apps. |
| 4 | (nenastaveno) | Ve výchozím nastavení se používá port 5000. |
Pokud je proměnná nastavená, ale obsahuje neplatnou hodnotu, DAB přejde na další možnost.
| Scénář | Použitý port |
|---|---|
ASPNETCORE_URLS=http://*:8080 |
8080 |
ASPNETCORE_HTTP_PORTS=7071 |
7071 |
DEFAULT_PORT=6000 |
6000 |
| Není nastavena žádná proměnná prostředí | 5000 |
Poznámka:
DEFAULT_PORT je proměnná prostředí specifická pro DAB. .NET, Azure Container Apps a další hostitelské platformy ji nerozpoznávají. Používejte ho jenom jako záložní řešení pro vlastní scénáře nasazení.
Podpora platformy
Image kontejnerů DAB jsou vytvořené pouze pro platformu x86-64 (amd64). ARM64 se v současné době nepodporuje.