Share via


在 Azure 容器應用程式中使用 Azure CLI 設定 GitHub 動作

Azure 容器應用程式可讓您使用 GitHub Actions 將修訂發佈至您的容器應用程式。 當認可推送至您的 GitHub 存放庫時,GitHub Action 工作流程就會觸發,以更新容器登錄中的容器映像。 在登錄中更新容器後,Azure 容器應用程式會根據更新的容器映像建立新的修訂。

Changes to a GitHub repo trigger an action to create a new revision.

GitHub Actions 工作流程會透過提交到存放庫中的特定分支來觸發。 建立工作流程時,您可以決定哪個分支會觸發動作。

本文說明如何使用 Azure CLI 產生入門 GitHub Actions 工作流程。 若要建立您可以完全自訂的工作流程,請參閱使用 GitHub Actions 部署至 Azure 容器應用程式

驗證

新增或移除 GitHub Actions 整合時,您可以傳入 GitHub 個人存取權杖或使用互動式 GitHub 登入體驗來進行驗證。 互動式體驗會在網頁瀏覽器中開啟表單,讓您有機會登入 GitHub。 成功驗證後,權杖會傳回給 GitHub 用於目前工作階段其餘部分的 CLI。

  • 若要傳遞個人存取權杖,請使用 --token 參數並提供權杖值。
  • 如果您選擇使用互動式登入,請使用不含值的 --login-with-github 參數。

注意

您的 GitHub 個人存取權杖必須選取 workflow 範圍。

containerapp github-action add命令會建立 GitHub Actions 與您的容器應用程式的整合。

注意

在繼續進行下列範例之前,您必須先部署第一個容器應用程式。

第一次將 GitHub Actions 附加至容器應用程式時,您需要提供服務主體內容。 下列命令示範如何建立服務主體。

az ad sp create-for-rbac \
  --name <SERVICE_PRINCIPAL_NAME> \
  --role "contributor" \
  --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>

當您與此範例互動時,請以您的值取代 <> 括住的預留位置。

來自此命令的傳回值包含服務主體的 appIdpasswordtenant。 您必須將這些值傳遞至 az containerapp github-action add 命令。

下列範例示範如何在使用個人存取權杖時新增整合。

az containerapp github-action add \
  --repo-url "https://github.com/<OWNER>/<REPOSITORY_NAME>" \
  --context-path "./dockerfile" \
  --branch <BRANCH_NAME> \
  --name <CONTAINER_APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --registry-url <URL_TO_CONTAINER_REGISTRY> \
  --registry-username <REGISTRY_USER_NAME> \
  --registry-password <REGISTRY_PASSWORD> \
  --service-principal-client-id <appId> \
  --service-principal-client-secret <password> \
  --service-principal-tenant-id <tenant> \
  --token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>

當您與此範例互動時,請以您的值取代 <> 括住的預留位置。

顯示

containerapp github-action show 命令會傳回容器應用程式的 GitHub Actions 組態設定。

此範例示範如何在使用個人存取權杖時新增整合。

az containerapp github-action show \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <CONTAINER_APP_NAME>

當您與此範例互動時,請以您的值取代 <> 括住的預留位置。

此命令會傳回具有 GitHub Actions 整合組態設定的 JSON 承載。

刪除

containerapp github-action delete 命令會從容器應用程式移除 GitHub Actions。

az containerapp github-action delete \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <CONTAINER_APP_NAME> \
  --token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>

當您與此範例互動時,請以您的值取代 <> 括住的預留位置。