Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il generatore di API dati (DAB) viene pubblicato come immagine del contenitore nel Registro Contenitori Microsoft. Qualsiasi host Docker può scaricare l'immagine container ed eseguire DAB con una configurazione minima. Questa guida usa l'immagine del contenitore e un file di configurazione locale per ospitare ed eseguire rapidamente DAB senza la necessità di installare strumenti aggiuntivi.
Prerequisiti
Creare dati di esempio
Per questa breve guida, una tabella semplice con poche righe di dati è sufficiente per illustrare come usare DAB in un contenitore Docker. Per semplificare ulteriormente le operazioni, si usa SQL Server per Linux in un'immagine del contenitore Docker.
Scaricare l'immagine del
mcr.microsoft.com/mssql/server:2022-latestcontenitore.docker pull mcr.microsoft.com/mssql/server:2022-latestEseguire l'immagine del contenitore pubblicando la porta
1433e impostare la password dell'accountsasu una password univoca utilizzata in tutta questa guida.docker run \ --name mssql \ --publish 1433:1433 \ --detach \ --env "ACCEPT_EULA=Y" \ --env "MSSQL_SA_PASSWORD=<your-password>" \ mcr.microsoft.com/mssql/server:2022-latestImportante
Si tratta di una semplice password fittizia per questa guida. Nel mondo reale si userebbe un meccanismo di autenticazione diverso e idealmente un account diverso.
Connettersi al server SQL usando il client o lo strumento preferito. La stringa di connessione è
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;.Creare un nuovo database denominato
Libraryse non esiste già.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE LibraryCreare una tabella denominata
Bookscon le colonneid,title,yearepages.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 ) GOInserire quattro righe del libro di esempio nella
Bookstabella.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) GOTestate i vostri dati con una semplice query
SELECT *.SELECT * FROM dbo.Books
Creare un file di configurazione
Creare un file di configurazione mappato alla tabella creata nei passaggi precedenti. Questo file di configurazione descrive a DAB come eseguire il mapping degli endpoint REST e GraphQL ai dati effettivi.
Creare un file denominato
dab-config.json.Suggerimento
Si tratta del nome file predefinito per i file di configurazione. Usando il nome file predefinito, non è necessario specificare il file di configurazione durante l'esecuzione del contenitore.
Aggiungere questo contenuto JSON al file. Questa configurazione crea una singola entità denominata mappata
bookalla tabella esistentedbo.Books.{ "$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" } ] } } }
Eseguire il pull e avviare l'immagine del contenitore Docker
Eseguire DAB usando l'immagine del contenitore Docker ospitata in Registro Contenitori Microsoft. Quando si esegue l'immagine del contenitore, montare una directory in modo che DAB possa leggere il file di configurazione.
Esegui il pull dell'immagine del
mcr.microsoft.com/azure-databases/data-api-buildercontenitore Docker.docker pull mcr.microsoft.com/azure-databases/data-api-builderEseguire il contenitore che pubblica la
5000porta e associare il montaggio deldab-config.jsonfile.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-builderUsare un Web browser per passare a
http://localhost:5000/api/book. L'output dovrebbe essere un array JSON di elementi del libro provenienti dall'endpoint 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 } ] }Annotazioni
Questa guida usa una connessione HTTP. Quando si esegue un contenitore di Generatore API dati in Docker, si noterà che viene eseguito il mapping solo dell'endpoint HTTP. Se si vuole che il contenitore Docker supporti HTTPS per lo sviluppo locale, è necessario fornire il proprio certificato SSL/TLS e i file di chiave privata necessari per la crittografia SSL/TLS ed esporre la porta HTTPS. È anche possibile usare un proxy inverso per imporre che i client si connettano al server tramite HTTPS per assicurarsi che il canale di comunicazione sia crittografato prima di inoltrare la richiesta al contenitore.