將數據 API 產生器部署至 Azure 容器應用程式

本指南將說明如何使用使用 Azure Container Registry 建立的自訂容器映像,將 Data API 建構器(DAB)部署到 Azure 容器應用程式。 容器應用程式提供無伺服器擴展、內建入口及環境隔離。

部署至Azure 容器應用程式後整體架構的示意圖已完成。

先決條件

建置組態檔

若要開始,請建置數據 API 產生器 (DAB) 組態檔,以連線到現有的資料庫。 此檔案稍後會與最終容器搭配使用。

  1. 在您的本機電腦上建立空的目錄來儲存組態檔。

  2. 使用 dab init初始化新的基底組態檔。 至少在初始化時使用下列設定。

    Setting 價值
    資料庫類型 選取支援的資料庫類型。
    連接字串 使用 @env() 函式來參考 DATABASE_CONNECTION_STRING 環境變數。
    dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"
    

    這很重要

    有些資料庫類型在初始化時需要額外的設定設定。

  3. 將至少一個資料庫實體新增至組態。 使用 dab add 命令來設定實體。 設定每個實體以允許匿名使用者的所有許可權。 您可以針對您的實體任意次重複 dab add

    dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"
    
  4. 開啟並檢閱 dab-config.json 檔案的內容。 您稍後會在本指南中使用這個檔案。

建立自訂容器映像檔

建立一個在 dab-config.json 包含 /App/dab-config.json 的自訂映像檔。 從包含 dab-config.json的資料夾執行這些指令。

  1. 建立新的資源群組。 你在本指南中使用這個資源群組來獲取所有新資源。

    小提示

    建議您命名資源群組 msdocs-dab-aca

  2. 建立一個 Azure 容器登錄檔(ACR)並建立映像檔。

    az acr create \
      --resource-group "<resource-group-name>" \
      --name "<registry-name>" \
      --sku Basic \
      --admin-enabled true
    
    # Create a Dockerfile that embeds dab-config.json
    cat <<'EOF' > Dockerfile
    FROM mcr.microsoft.com/azure-databases/data-api-builder:latest
    COPY dab-config.json /App/dab-config.json
    EOF
    
    # Build and push the image
    az acr build \
      --registry "<registry-name>" \
      --image "dab:1" \
      .
    
  3. 記錄註冊表登入伺服器(<registry-name>.azurecr.io)和映像標籤(dab:1)。 你在建立容器應用程式時會使用這些值。

建立容器應用程式

使用已經包含 dab-config.json的自訂映像來建立容器應用程式。

  1. 建立 Azure 容器應用程式 資源。 在建立應用程式資源的過程中,你需要建立一個環境。 使用這些設定來設定這兩個資源。

    資源 Setting 價值
    環境 環境名稱 輸入全域唯一名稱
    環境 環境類型 僅選取 [取用]
    環境 日誌目的地 選取 [不要儲存記錄]
    應用程式 資源群組 選取您稍早建立的資源群組
    應用程式 區域 選取與資源群組相同的區域
    應用程式 使用快速入門映像 不要選取
    應用程式 影像來源 選擇 Azure Container Registry
    應用程式 Registry 選擇你的 ACR 實例
    應用程式 映像與標籤 輸入 dab:1
    應用程式 環境變數 - 名稱 輸入 DATABASE_CONNECTION_STRING
    應用程式 環境變數 - 值 輸入資料庫的連接字串。
    應用程式 入口 確定已選取 [已啟用]
    應用程式 輸入流量 選擇接受來自任何地方的流量
    應用程式 用戶端憑證模式 選取 [忽略]
    應用程式 輸入類型 選取 HTTP
    應用程式 目標連接埠 輸入 5000

    Azure入口網站「建立容器應用程式」頁面「容器」分頁的截圖。

    Azure入口網站「建立容器應用程式環境」頁面「基礎」標籤的截圖。

    小提示

    我們建議使用不含授權金鑰的連線字串。 請改用受控識別和角色型訪問控制來管理資料庫與主機之間的存取權。 如需詳細資訊,請參閱 使用受控識別的 Azure 服務

  2. 在 Azure 入口網站中瀏覽至新的容器應用程式。

  3. 使用 [基本資訊] 區段中的 [應用程式 URL] 欄位,流覽至容器應用程式的網站。 觀察回應,指出 DAB 容器正在運行,且狀態 正常

    {
        "status": "healthy",
        "version": "1.1.7",
        "app-name": "dab_oss_1.1.7"
    }
    

    備註

    版本號和名稱會依你目前的 Data API 建構器版本而有所不同。

  4. 流覽至目前執行中應用程式的 /api/swagger 路徑。 使用 Swagger UI 來發出其中一個實體的 HTTP GET 請求。

清理資源

當您不再需要範例應用程式或資源時,請移除對應的部署和所有資源。

  1. 使用 Azure 入口網站流覽至 資源群組

  2. 命令列中,選取 [刪除]。

下一個步驟