快速入門:自動化部署

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。

本文適用於:❌ 基本/標準✔️企業

本快速入門說明如何使用 GitHub Actions 和 Terraform 將部署自動化至 Azure Spring Apps 企業版方案。

必要條件

  • 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶
  • 了解並滿足 Azure Marketplace 中企業方案的需求一節。
  • Azure CLI 2.45.0 版或更高版本。
  • Git
  • jq
  • Azure Spring Apps 企業版方案延伸模組。 使用下列命令來移除舊版並安裝最新的 Enterprise 方案擴充功能。 如果您先前已安裝擴充 spring-cloud 功能,請將其卸載,以避免設定和版本不符。
    az extension add --upgrade --name spring
    az extension remove --name spring-cloud
    

設定 GitHub 存放庫並驗證

與範例應用程式相關聯的自動化需要 儲存體 帳戶來維護 Terraform 狀態。 下列步驟說明如何建立 儲存體 帳戶以搭配 GitHub Actions 和 Terraform 使用。

  1. 使用下列命令建立新的資源群組,以包含 儲存體 帳戶:

    az group create \
        --name <storage-resource-group> \
        --location <location>
    
  2. 使用下列命令來建立 儲存體 帳戶:

    az storage account create \
        --resource-group <storage-resource-group> \
        --name <storage-account-name> \
        --location <location> \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. 使用下列命令在 儲存體 帳戶內建立 儲存體 容器:

    az storage container create \
        --resource-group <storage-resource-group> \
        --name terraform-state-container \
        --account-name <storage-account-name> \
        --auth-mode login
    
  4. 使用下列命令來取得 Azure 認證。 您需要 Azure 服務主體認證,才能授權 Azure 登入動作。

    az login
    az ad sp create-for-rbac \
        --role contributor \
        --scopes /subscriptions/<SUBSCRIPTION_ID> \
        --json-auth
    

    這個指令應該會輸出 JSON 物件:

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        ...
    }
    
  5. 此範例使用 GitHub 上的健身存放區 範例。 分支範例、開啟 GitHub 存放庫頁面,然後選取 [設定] 索引卷標。開啟 [秘密] 功能表,然後選取 [新增密碼],如下列螢幕快照所示。

    Screenshot showing GitHub Settings Add new secret.

  6. 將秘密名稱設定為 ,AZURE_CREDENTIALS並將其值設定為您在設定 GitHub 存放庫並驗證標題底下找到的 JSON 字串。

    Screenshot showing GitHub Settings Set secret data.

  7. 將下列秘密新增至 GitHub Actions:

  8. 使用下列值將秘密 TF_BACKEND_CONFIG 新增至 GitHub Actions:

    resource_group_name  = "<storage-resource-group>"
    storage_account_name = "<storage-account-name>"
    container_name       = "terraform-state-container"
    key                  = "dev.terraform.tfstate"
    

使用 GitHub Actions 自動化

現在您可以在存放庫中執行 GitHub Actions。 布 建工作流程 會布建執行範例應用程式所需的所有資源。 下列螢幕快照顯示執行範例:

Screenshot of GitHub showing output from the provision workflow.

每個應用程式都有一個 部署工作流程 ,會在對該應用程式進行變更時重新部署應用程式。 下列螢幕快照顯示目錄服務的一些範例輸出:

Screenshot of GitHub showing output from the Deploy Catalog workflow.

您可以手動執行清除工作流程,以刪除工作流程所provision建立的所有資源。 下列螢幕快照顯示輸出:

Screenshot of GitHub showing output from the cleanup workflow.

清除資源

如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。 如果不再需要,請刪除資源群組,這會刪除資源群組中的資源。 若要使用 Azure CLI 刪除資源群組,請使用下列命令:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

下一步

繼續進行下列任一選擇性快速入門: