Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Data API Builder (DAB) wordt gepubliceerd als een containerafbeelding naar het Microsoft Container Registry. Elke Docker-host kan de containerinstallatiekopie omlaag halen en DAB uitvoeren met minimale configuratie. In deze handleiding worden de containerinstallatiekopie en een lokaal configuratiebestand gebruikt om SNEL DAB te hosten en uit te voeren zonder extra hulpprogramma's te hoeven installeren.
Vereiste voorwaarden
Voorbeeldgegevens maken
Voor deze korte handleiding is een eenvoudige tabel met een paar rijen gegevens voldoende om te laten zien hoe u DAB gebruikt in een Docker-container. Om het eenvoudiger te maken, gebruiken we SQL Server voor Linux in een Docker-containerimage.
Haal de
mcr.microsoft.com/mssql/server:2022-latestcontainerafbeelding op.docker pull mcr.microsoft.com/mssql/server:2022-latestVoer de containerafbeeldingen uit, publiceer de
1433poort, en stel hetsaaccountwachtwoord in op een uniek wachtwoord dat u voor deze handleiding gebruikt.docker run \ --name mssql \ --publish 1433:1433 \ --detach \ --env "ACCEPT_EULA=Y" \ --env "MSSQL_SA_PASSWORD=<your-password>" \ mcr.microsoft.com/mssql/server:2022-latestBelangrijk
Dit wachtwoord is een eenvoudige fictieve waarde voor deze handleiding. In de praktijk zou u een ander verificatiemechanisme en idealiter een ander account gebruiken.
Maak verbinding met de SQL-server met behulp van uw favoriete client of hulpprogramma. De verbindingsreeks is
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;.Maak een nieuwe database met de naam
Libraryals deze nog niet bestaat.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE LibraryMaak een tabel genaamd
Booksmet de kolommenid,title,year, enpages.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 ) GOVoeg vier voorbeeldboekrijen in de
Bookstabel in.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) GOTest uw gegevens met een eenvoudige
SELECT *query.SELECT * FROM dbo.Books
Configuratiebestand maken
Maak een configuratiebestand dat overeenkomt met de tabel die in de vorige stappen is gemaakt. Dit configuratiebestand beschrijft hoe je REST- en GraphQL-eindpunten aan je daadwerkelijke data koppelt.
Maak een bestand met de naam
dab-config.json.Aanbeveling
Deze bestandsnaam is de standaardnaam voor configuratiebestanden. Door de standaardbestandsnaam te gebruiken, hoeft u niet het configuratiebestand op te geven bij het uitvoeren van de container.
Voeg deze JSON-inhoud toe aan uw bestand. Met deze configuratie maakt u één entiteit die
bookis toegewezen aan de bestaandedbo.Bookstabel.{ "$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" } ] } } }
Bouw en voer een aangepaste Docker-containerimage uit
Bouw een aangepaste image die dab-config.json bevat en voer de image vervolgens lokaal uit.
Maak een Dockerfile in dezelfde map als
dab-config.json.FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonBouw de afbeelding.
docker build -t dab-local:1 .Voer de container uit die bezig is met het publiceren van de
5000poort.docker run \ --name dab \ --publish 5000:5000 \ --detach \ dab-local:1Gebruik een webbrowser om naar
http://localhost:5000/api/bookte navigeren. De uitvoer moet een JSON-matrix van boekitems zijn van het REST API-eindpunt.{ "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 } ] }Opmerking
In deze handleiding wordt een HTTP-verbinding gebruikt. Wanneer u een Data API Builder-container uitvoert in Docker, ziet u dat alleen het HTTP-eindpunt is toegewezen. Als u wilt dat uw Docker-container HTTPS ondersteunt voor lokale ontwikkeling, moet u uw eigen SSL/TLS-certificaat en persoonlijke sleutelbestanden opgeven die vereist zijn voor SSL/TLS-versleuteling en de HTTPS-poort beschikbaar maken. Een omgekeerde proxy kan ook worden gebruikt om af te dwingen dat clients verbinding maken met uw server via HTTPS om ervoor te zorgen dat het communicatiekanaal wordt versleuteld voordat de aanvraag naar uw container wordt doorgestuurd.