Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le générateur d’API de données (DAB) est publié en tant qu’image conteneur dans Microsoft Container Registry. Tout hôte Docker peut extraire l’image conteneur et exécuter DAB avec une configuration minimale. Ce guide utilise l’image conteneur et un fichier de configuration local pour héberger et exécuter rapidement DAB sans avoir à installer d’outils supplémentaires.
Prerequisites
Créer des exemples de données
Pour ce court guide, une table simple avec quelques lignes de données est suffisante pour montrer comment utiliser DAB dans un conteneur Docker. Pour simplifier davantage, nous utilisons SQL Server pour Linux dans une image conteneur Docker.
Tirez l’image de conteneur
mcr.microsoft.com/mssql/server:2022-latest.docker pull mcr.microsoft.com/mssql/server:2022-latestExécutez l’image du conteneur en publiant le port
1433et en définissant le mot de passe du comptesasur un mot de passe unique que vous utiliserez tout au long de ce guide.docker run \ --name mssql \ --publish 1433:1433 \ --detach \ --env "ACCEPT_EULA=Y" \ --env "MSSQL_SA_PASSWORD=<your-password>" \ mcr.microsoft.com/mssql/server:2022-latestImportant
Ce mot de passe est une valeur fictive simple pour ce guide. Dans le monde réel, vous utiliseriez un mécanisme d’authentification différent et idéalement un autre compte.
Connectez-vous au serveur SQL à l’aide de votre client ou outil préféré. La chaîne de connexion est
Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;.Créez une base de données nommée
Librarysi elle n’existe pas déjà.IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library') BEGIN CREATE DATABASE Library; END GO USE LibraryCréez une table nommée
Booksavecid,title,yearetpagesdes colonnes.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 ) GOInsérez quatre exemples de lignes de livre dans la
Bookstable.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) GOTestez vos données avec une requête simple
SELECT *.SELECT * FROM dbo.Books
Créer un fichier de configuration
Créez un fichier de configuration mappé à la table créée lors des étapes précédentes. Ce fichier de configuration indique à DAB comment associer les points de terminaison REST et GraphQL à vos données réelles.
Créez un fichier appelé
dab-config.json.Conseil / Astuce
Ce nom de fichier est la valeur par défaut pour les fichiers de configuration. En utilisant le nom de fichier par défaut, vous évitez d’avoir à spécifier le fichier de configuration lors de l’exécution du conteneur.
Ajoutez ce contenu JSON à votre fichier. Cette configuration crée une entité unique nommée
bookmappée à la table existantedbo.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" } ] } } }
Générer et exécuter une image conteneur Docker personnalisée
Générez une image personnalisée qui inclut dab-config.json, puis exécutez l’image localement.
Créez un fichier Dockerfile dans le même dossier que
dab-config.json.FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonGénérer l’image.
docker build -t dab-local:1 .Exécutez le conteneur qui publie le
5000port.docker run \ --name dab \ --publish 5000:5000 \ --detach \ dab-local:1Utilisez un navigateur web pour accéder à
http://localhost:5000/api/book. La sortie doit être un tableau JSON d’éléments de livre à partir du point de terminaison de l’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 } ] }Note
Ce guide utilise une connexion HTTP. Lorsque vous exécutez un conteneur du générateur d’API de données dans Docker, vous voyez que seul le point de terminaison HTTP est mappé. Si vous souhaitez que votre conteneur Docker prend en charge HTTPS pour le développement local, vous devez fournir vos propres certificats SSL/TLS et fichiers de clés privées requis pour le chiffrement SSL/TLS et exposer le port HTTPS. Un proxy inverse peut également être utilisé pour appliquer que les clients se connectent à votre serveur via HTTPS pour vous assurer que le canal de communication est chiffré avant de transférer la requête à votre conteneur.