Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Data API Builder (DAB) tárolórendszerképként van közzétéve a Microsoft Container Registryben. Bármely Docker-gazdagép lekérheti a tárolólemezképet, és minimális konfigurációval futtathatja a DAB-t. Ez az útmutató a tárolórendszerképet és egy helyi konfigurációs fájlt használ a DAB gyors üzemeltetéséhez és futtatásához anélkül, hogy további eszközök telepítésére van szükség.
Előfeltételek
Mintaadatok létrehozása
Ebben a rövid útmutatóban egy egyszerű, néhány adatsort tartalmazó táblázat elegendő a DAB Docker-tárolókban való használatának bemutatásához. A további egyszerűsítés érdekében a Linuxhoz készült SQL Servert egy Docker-tárolórendszerképben használjuk.
Kérje le a
mcr.microsoft.com/mssql/server:2022-latesttárolórendszerképet.docker pull mcr.microsoft.com/mssql/server:2022-latestFuttassa a konténerképet, amely publikálja a
1433portot, és állítsa be asafiók jelszavát egy egyedi jelszóra, amelyet az útmutató során használ.docker run \ --name mssql \ --publish 1433:1433 \ --detach \ --env "ACCEPT_EULA=Y" \ --env "MSSQL_SA_PASSWORD=<your-password>" \ mcr.microsoft.com/mssql/server:2022-latestFontos
Ez a jelszó egyszerűen fiktív érték ezen útmutató céljaira. A valós világban egy másik hitelesítési mechanizmust és ideális esetben egy másik fiókot használna.
Csatlakozzon az SQL Serverhez az előnyben részesített ügyfél vagy eszköz használatával. A kapcsolati karaktersorozat az
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;.Hozzon létre egy új adatbázist, ha
Librarymég nem létezik.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE LibraryHozzon létre egy
Booksnevű táblát, amelyid,title,year, éspagesoszlopokat tartalmaz.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 ) GOSzúrjon be négy minta könyvsort a
Bookstáblázatba.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) GOTesztelje az adatokat egy egyszerű
SELECT *lekérdezéssel.SELECT * FROM dbo.Books
Konfigurációs fájl létrehozása
Hozzon létre egy konfigurációs fájlt, amely megfelel az előző lépésekben létrehozott táblának. Ez a konfigurációs fájl ismerteti a DAB-nak, hogyan képezheti le a REST- és GraphQL-végpontokat a tényleges adatokhoz.
Hozzon létre egy
dab-config.jsonnevű fájlt.Jótanács
Ez a fájlnév a konfigurációs fájlok alapértelmezett neve. Az alapértelmezett fájlnév használatával nem kell megadnia a konfigurációs fájlt a tároló futtatásakor.
Adja hozzá ezt a JSON-tartalmat a fájlhoz. Ez a konfiguráció egyetlen, a meglévő
booktáblához hozzárendelt entitástdbo.Bookshoz létre.{ "$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" } ] } } }
Egyéni Docker-tárolórendszerkép létrehozása és futtatása
Hozzon létre egy egyéni rendszerképet, amely tartalmazza dab-config.json, majd futtassa helyileg a képet.
Hozzon létre egy Dockerfile-t ugyanabban a mappában, mint
dab-config.jsona .FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonHozza létre a képet.
docker build -t dab-local:1 .Futtassa a tárolót, amely közzéteszi a portot
5000.docker run \ --name dab \ --publish 5000:5000 \ --detach \ dab-local:1Nyisson meg egy web böngészőt, és navigáljon a(z)
http://localhost:5000/api/book-hez. A kimenetnek a REST API-végpontból származó könyvelemek JSON-tömbjének kell lennie.{ "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 } ] }Megjegyzés:
Ez az útmutató HTTP-kapcsolatot használ. Amikor Data API Builder-tárolót futtat a Dockerben, láthatja, hogy csak a HTTP-végpont van leképezve. Ha azt szeretné, hogy a Docker-tároló támogassa a HTTPS-t a helyi fejlesztéshez, meg kell adnia saját SSL/TLS-tanúsítványt és titkos kulcsfájlokat az SSL/TLS titkosításhoz, és el kell helyeznie a HTTPS-portot. Fordított proxyval is kényszeríthető, hogy az ügyfelek HTTPS-en keresztül csatlakozzanak a kiszolgálóhoz, hogy a kommunikációs csatorna titkosítva legyen, mielőtt továbbítanák a kérést a tárolónak.
Portazonosítás
A Data API Builder meghatározza, hogy melyik HTTP-portot használja a belső műveletekhez (állapotellenőrzésekhez, belső HTTP-hívásokhoz) az alábbi elsőbbséget használva:
| Priority | Környezet változó | Jegyzetek |
|---|---|---|
| 1 | ASPNETCORE_URLS |
Elemzi az ELSŐ portot az URL-listából (például http://*:8080). |
| 2 | ASPNETCORE_HTTP_PORTS |
.NET 8+ konténerváltozó. Az első megadott portot használja. |
| 3 | DEFAULT_PORT |
DAB-specifikus tartalékmegoldás. .NET vagy Azure Container Apps nem ismeri fel. |
| 4 | (nincs megadva) | Alapértelmezés szerint a(z) 5000 portot használja. |
Ha egy változó be van állítva, de érvénytelen értéket tartalmaz, a DAB a következő lehetőségre tér át.
| Scenario | Használt port |
|---|---|
ASPNETCORE_URLS=http://*:8080 |
8080 |
ASPNETCORE_HTTP_PORTS=7071 |
7071 |
DEFAULT_PORT=6000 |
6000 |
| Nincs környezeti változókészlet | 5000 |
Megjegyzés:
DEFAULT_PORT EGY DAB-specifikus környezeti változó. .NET, Azure Container Apps és más üzemeltetési platformok nem ismerik fel. Csak az egyéni üzembe helyezési forgatókönyvek tartalékaként használja.
Platformtámogatás
A DAB-tárolólemezképek csak x86-64-hez (amd64) készültek. Az ARM64 jelenleg nem támogatott.