共用方式為


將數據 API 產生器部署至 Azure 容器實例

部署指南順序中目前位置 ('Publish') 的圖表。

部署指南順序的圖表,包括這些位置,依序排列:概觀、計劃、準備、發佈、監視和優化。 「發佈」位置目前已突出顯示。

只要使用組態檔,且沒有自定義程式代碼,即可快速將數據 API 產生器部署至 Azure。 本指南包含從 Docker 裝載數據 API 產生器容器映像的步驟,作為 Azure 容器實例中的容器。

在本指南中,逐步解說建置數據 API 產生器配置檔、在 Azure 檔案記憶體中裝載檔案,然後將檔案掛接至 Azure 容器實例中的容器的步驟。

先決條件

建置組態檔

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

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

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

    設定 價值
    資料庫類型 選取支援的資料庫類型。
    連接字串 使用 @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 檔案的內容。 您稍後會在本指南中使用這個檔案。

Azure 檔案儲存中的主機設定

接下來,將組態檔上傳至在 Azure 檔案服務內建立的檔案共用。 此檔案共享最終會掛載到容器中,作為一個磁碟區。

  1. 登入 Azure 入口網站 (https://portal.azure.com)。

  2. 建立新的資源群組。 您將使用此資源群組來取得本指南中的所有新資源。

    Azure 入口網站中 [建立資源群組] 頁面 [基本] 索引卷標的螢幕快照。

    提示

    建議將資源群組命名為 msdocs-dab-aci 。 本指南中的所有螢幕快照都會使用此名稱。

  3. 建立 Azure 記憶體帳戶。 使用這些設定來設定帳戶。

    設定 價值
    資源群組 選取您稍早建立的資源群組
    記憶體帳戶名稱 輸入全域唯一名稱
    區域 選取 Azure 區域
    效能 選擇 標準
    備援 選取 本地冗餘儲存 (LRS)
    啟用記憶體帳戶金鑰存取 選取 [已啟用 ]

    Azure 入口網站中 [建立記憶體帳戶] 頁面 [進階] 索引卷標的螢幕快照。

  4. 導覽到 Azure 入口網站中的新儲存帳戶。

  5. 在資源功能表的 [數據記憶體] 區段中,選取 [檔案共用]。 然後,從命令行選取 [檔案共用],以在記憶體帳戶中建立新的共用。 使用下列設定來設定新的檔案共用。

    設定 價值
    名稱 輸入 config
    存取層 選擇 熱門
    啟用備份 不要選取

    Azure 入口網站中 [檔案分享] 資源功能表和命令行選項的螢幕快照。

  6. dab-config.json 和任何其他必要檔案上傳至共用。 使用命令行中的 [上傳] 選項,開啟 [上傳檔案] 對話框。 選取這兩個檔案,然後選取 上傳

    Azure 入口網站中 [上傳檔案] 對話框的螢幕快照。

  7. 在資源功能表的 [安全性 + 網络] 區段中,選取 [存取密鑰]。 然後,記錄此頁面上的 儲存帳戶名稱金鑰值。 您稍後將在本指南中使用這些值。

    Azure 入口網站中記憶體帳戶內 [存取密鑰] 頁面的螢幕快照。

建立基底容器實例

最後,使用 Azure 容器實例在 Azure 中建立容器。 此容器承載包含組態檔的數據 API 構建映像,用於連接至您的資料庫。

重要

目前,使用掛接磁碟區建立容器實例的唯一方式是使用 Azure CLI。

  1. 使用 az container create建立 Azure 容器實例資源。 使用這些設定來設定資源。

    設定 價值
    資源群組 使用您稍早建立的資源群組
    容器名稱 輸入全域唯一名稱
    區域 使用與記憶體帳戶相同的區域
    SKU 使用標準
    影像類型 使用 公用
    映像 輸入 mcr.microsoft.com/azure-databases/data-api-builder:latest
    OS 類型 使用 Linux
    網路類型 使用 公用
    網路埠 輸入 5000
    DNS 名稱標籤 輸入全域唯一標籤
    環境變數 輸入 DATABASE_CONNECTION_STRING 和資料庫的連接字串。
    az container create \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --image "mcr.microsoft.com/azure-databases/data-api-builder:latest" \
        --location "<region>" \
        --sku "Standard" \
        --os-type "Linux" \
        --ip-address "public" \
        --ports "5000" \
        --dns-name-label "<unique-dns-label>" \
        --environment-variables "DATABASE_CONNECTION_STRING=<database-connection-string>" \
        --azure-file-volume-mount-path "/cfg" \
        --azure-file-volume-account-name "<storage-account-name>" \
        --azure-file-volume-account-key "<storage-account-key>" \
        --azure-file-volume-share-name "config" \
        --command-line "dotnet Azure.DataApiBuilder.Service.dll --ConfigFileName /cfg/dab-config.json"
        --
    

    提示

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

  2. 使用 az container show 來查詢新容器實例的完整域名(FQDN)。 然後,流覽至容器實例的網站。

    az container show \
        --resource-group "<resource-group-name>" \
        --name "<unique-container-instance-name>" \
        --query "join('://', ['https', ipAddress.fqdn])" \
        --output "tsv"
    
  3. 觀察回應,指出 DAB 容器正在運行,且狀態 正常

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

    注意

    版本號碼和名稱會根據您的目前數據 API 產生器版本而有所不同。 此時,您無法巡覽至任何 API 端點。 掛接 DAB 組態檔之後,即可使用這些端點。

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

清除資源

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

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

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

下一步