在 Azure 容器应用中使用 Azure CLI 设置 GitHub Actions

Azure 容器应用允许使用 GitHub Actions 将修订版本发布到容器应用。 将提交推送到 GitHub 存储库时,会触发 GitHub Actions 工作流,从而更新容器注册表中的容器映像。 注册表中的容器更新后,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 登录体验进行身份验证。 交互式体验在 Web 浏览器中打开窗体,以便你登录到 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>

与此示例交互时,请将括在 <> 中的占位符替换为你的值。