Megosztás a következőn keresztül:


Data API Builder futtatása Docker-tárolóban

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órendszerké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álja a DAB gyors üzemeltetéséhez és futtatásához anélkül, hogy további eszközöket kellene telepítenie.

Előfeltételek

Mintaadatok létrehozása

Ebben a rövid útmutatóban egy egyszerű, néhány adatsort tartalmazó táblázat elegendő ahhoz, hogy bemutassa, hogyan használható a DAB egy Docker-tárolóban. A további egyszerűsítés érdekében a Docker-tároló lemezképében a Linuxhoz készült SQL Server használjuk.

  1. Kérje le a mcr.microsoft.com/mssql/server:2022-latest tárolórendszerképet.

    docker pull mcr.microsoft.com/mssql/server:2022-latest
    
  2. Futtassa a tárolórendszerképet a 1433 port közzétételekor, és állítsa a sa fiók jelszavát az útmutató során használt egyedi jelszóra.

    docker run \
        --name mssql \
        --publish 1433:1433 \
        --detach \
        --env "ACCEPT_EULA=Y" \
        --env "MSSQL_SA_PASSWORD=<your-password>" \
        mcr.microsoft.com/mssql/server:2022-latest
    

    Fontos

    Ez egy egyszerű kitalált jelszó ehhez az útmutatóhoz. A való világban egy másik hitelesítési mechanizmust és ideális esetben egy másik fiókot használna.

  3. Csatlakozzon az SQL-kiszolgálóhoz az előnyben részesített ügyfél vagy eszköz használatával. A kapcsolati karakterlánc a következő: Server=localhost,1433;User Id=sa;Password=<your-password>;TrustServerCertificate=true;.

  4. Létrehozás egy új nevű adatbázistLibrary, ha még nem létezik.

    IF NOT EXISTS(SELECT name FROM sys.databases WHERE name = 'Library')
    BEGIN
        CREATE DATABASE Library;
    END
    GO
    
    USE Library
    
  5. Létrehozás egy nevű táblát, amelynek idneve Books , title, yearés pages oszlopai.

    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
    )
    GO
    
  6. Szúrjon be négy minta könyvsort a Books tá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)
    GO
    
  7. Tesztelje az adatokat egy egyszerű SELECT * lekérdezéssel.

    SELECT * FROM dbo.Books
    

Konfigurációs fájl létrehozása

Létrehozás 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.

  1. Hozzon létre egy dab-config.json nevű fájlt.

    Tipp

    Ez a konfigurációs fájlok alapértelmezett fájlneve. Az alapértelmezett fájlnév használatával nem kell megadnia a konfigurációs fájlt a tároló futtatásakor.

  2. Adja hozzá ezt a JSON-tartalmat a fájlhoz. Ez a konfiguráció egyetlen entitást hoz létre, amely book a meglévő dbo.Books táblára van leképezve.

    {
      "$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"
            }
          ]
        }
      }
    }
    

A Docker-tároló lemezképének lekérése és futtatása

Futtassa a DAB-t a Microsoft Container Registryben üzemeltetett Docker-tárolórendszerkép használatával. A tárolólemezkép futtatásakor csatlakoztassa a könyvtárat, hogy a DAB be tudja olvasni a konfigurációs fájlt.

  1. Kérje le a mcr.microsoft.com/azure-databases/data-api-builder Docker-tároló lemezképét.

    docker pull mcr.microsoft.com/azure-databases/data-api-builder
    
  2. Futtassa a portot közzétevő tárolót 5000 , és kösse össze a dab-config.json fájlt.

    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-builder
    
  3. Nyissa meg a http://localhost:5000/api/bookkövetkezőt: . A kimenetnek a REST API-végpont könyvelemeit tartalmazó JSON-tömbnek 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átni fogja, 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 az SSL/TLS titkosításhoz szükséges saját SSL-/TLS-tanúsítványt és titkos kulcsfájlokat, é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.