Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
az containerapp up (或 up) 命令是从现有映像、本地源代码或GitHub存储库Azure Container Apps中部署应用的最快捷方法。 使用此单一命令时,可以在几分钟内启动并运行容器应用。
提供本地源代码或GitHub存储库时,该命令可以生成容器映像并将其推送到Azure Container Registry。 从GitHub存储库工作时,该命令会创建一个GitHub Actions工作流,该工作流会在将更改提交到GitHub存储库时自动生成并推送新的容器映像。
本文介绍如何使用命令从现有映像、本地源代码和GitHub存储库部署容器应用。
先决条件
| 要求 | 说明 |
|---|---|
| Azure帐户 | 如果你没有帐户,请免费创建一个。 您的 Azure 订阅需要具有 Contributor 或 Owner 角色。 有关详细信息,请参阅 使用 Azure portal 分配 Azure 角色。 |
| Azure CLI | 安装 Azure CLI。 |
| GitHub帐户 | 如果要在GitHub存储库中使用映像,注册免费GitHub帐户。 |
| 本地源代码 | 如果要从本地源代码创建映像,请将代码置于本地目录中。 |
| 现有映像 | 如果要使用现有映像,请记下注册表服务器、映像名称和标记。 如果使用专用注册表,请记下凭据。 |
使用现有资源
该 up 命令可以创建资源,也可以使用现有资源,包括:
- 一个资源组。
- 容器注册表。
- 容器应用环境和 Log Analytics 工作区。
- 你的容器应用。
如果需要自定义容器应用环境,请先使用 az containerapp env create 命令创建和自定义环境。 然后运行 up 命令时,使用 --environment 选项指定自定义环境。
如果未指定现有环境,该 up 命令将在资源组中查找一个环境。 如果命令找到环境,则使用该环境。 如果命令找不到环境,则会创建一个包含 Log Analytics 工作区的环境。
有关 az containerapp up 命令及其选项的详细信息,请参阅 az containerapp up。
设置Azure CLI环境
使用Azure CLI登录Azure。
az login安装适用于Azure CLI的容器应用扩展。
az extension add --name containerapp --upgradeMicrosoft.App注册命名空间。az provider register --namespace Microsoft.AppMicrosoft.OperationalInsights注册 Log Analytics 工作区的提供程序。az provider register --namespace Microsoft.OperationalInsights
从现有映像部署
可以在公共或专用容器注册表中部署使用现有映像的容器应用。 如果从专用注册表进行部署,则需要使用--registry-server和--registry-username--registry-password选项提供凭据。
可以使用以下示例代码从现有映像部署容器应用。 在运行命令之前,请将尖括号中的占位符替换为你的值。
az containerapp up \
--name <CONTAINER_APP_NAME> \
--image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
--ingress external \
--target-port <PORT_NUMBER>
该命令执行以下操作:
- 创建资源组。
- 创建环境和 Log Analytics 工作区。
- 创建并部署从公共注册表拉取映像的容器应用。
- 将容器应用
ingress的值设置为external目标端口设置为指定值。
还可以使用 up 命令重新部署容器应用。 如果要使用新映像重新部署,请使用 --image 选项指定新映像。 确保将 --resource-group 和 --environment 选项设置为原始部署中的值。
az containerapp up \
--name <CONTAINER_APP_NAME> \
--image <REGISTRY_SERVER>/<IMAGE_NAME>:<TAG> \
--resource-group <RESOURCE_GROUP_NAME> \
--environment <ENVIRONMENT_NAME> \
--ingress external \
--target-port <PORT_NUMBER>
从本地源代码部署
使用 up 命令从本地源代码进行部署时,该命令会生成容器映像,将容器映像推送到注册表,并部署容器应用。 如果未指定注册表,该命令会在容器注册表中创建一个注册表。
该命令可以生成包含或不含 Dockerfile 的映像。 在不使用 Dockerfile 的版本中,支持以下语言:
- .NET
- Node.js
- PHP
- Python
可以使用以下示例代码从本地源代码部署容器应用:
az containerapp up \
--name <CONTAINER_APP_NAME> \
--source <SOURCE_DIRECTORY>\
--ingress external
该命令执行以下操作:
- 创建资源组。
- 创建环境和 Log Analytics 工作区。
- 在容器注册表中创建一个新的存储库。
- 生成容器镜像(使用 Dockerfile(如果存在)进行构建)。
- 将映像推送到注册表。
- 创建和部署容器应用。
Dockerfile 包含 EXPOSE 指令时, up 该命令将使用 Dockerfile 中的信息配置容器应用的入口和目标端口。 如果通过 Dockerfile 配置入口,或者应用不需要入口,则可省略 --ingress 选项。
命令的输出包括容器应用程序的 URL。
如果命令报告它正在等待云生成代理,但随后停止响应,则GitHub暂时性错误可能是问题的根源。 若要解决此问题,请再次运行该命令。
如果遇到失败,可以再次运行带有 --debug 选项的命令以获取更多信息。 如果在没有 Dockerfile 的情况下生成失败,则可以尝试添加 Dockerfile 并再次运行命令。
若要使用 az containerapp up 命令通过更新的映像重新部署容器应用,请包括 --resource-group 和 --environment 选项。 若要从本地源代码重新部署容器应用,请执行以下步骤:
对源代码进行更改。
运行以下命令:
az containerapp up \ --name <CONTAINER_APP_NAME> \ --source <SOURCE_DIRECTORY> \ --resource-group <RESOURCE_GROUP_NAME> \ --environment <ENVIRONMENT_NAME>
从GitHub存储库进行部署
使用 az containerapp up 命令从GitHub存储库进行部署时,它会生成生成容器映像的GitHub Actions工作流,将其推送到注册表,并部署容器应用。 如果未指定注册表,该命令会在容器注册表中创建一个注册表。
需要 Dockerfile 才能生成映像。 Dockerfile 包含 EXPOSE 指令时,该命令将使用 Dockerfile 中的信息配置容器应用的入口和目标端口。
可以使用以下示例代码从GitHub存储库部署容器应用:
az containerapp up \
--name <CONTAINER_APP_NAME> \
--repo <GITHUB_REPOSITORY_URL> \
--ingress external
该命令执行以下操作:
- 创建资源组。
- 创建环境和 Log Analytics 工作区。
- 在容器注册表中创建一个新的存储库。
- 使用 Dockerfile 生成容器映像。
- 将映像推送到注册表。
- 创建和部署容器应用。
- 创建一个GitHub Actions工作流,以便在将来的更改推送到GitHub存储库时生成容器映像并部署容器应用。
如果命令由于无法创建服务主体而失败,则可以在Azure中手动创建服务主体。 然后,可以将有关它的信息传递给命令:
az containerapp up \
--name <CONTAINER_APP_NAME> \
--repo <GITHUB_REPOSITORY_URL> \
--service-principal-client-id "$SERVICE_PRINCIPAL_CLIENT_ID" \
--service-principal-client-secret "$SERVICE_PRINCIPAL_CLIENT_SECRET" \
--service-principal-tenant-id "$AZURE_TENANT_ID"
--ingress external
如果通过 Dockerfile 配置入口,或者应用不需要入口,则可省略 --ingress 选项。
up 命令创建GitHub Actions工作流。 因此,重新运行命令会产生创建多个工作流的不需要的效果。 如果要将更改部署到应用的映像,请将更改推送到GitHub存储库,而不是重新运行命令。 GitHub工作流会自动检测存储库中的更改,然后生成和部署应用。 若要更改工作流,请编辑GitHub中的工作流文件。
配置容器应用设置
该 az containerapp up 命令提供了一种简化的方法,用于创建和部署主要使用默认设置的容器应用。 但是,使用 up 命令后,如果需要配置更高级的设置,则需要运行其他Azure CLI命令,例如以下命令:
- 分布式应用程序运行时(Dapr):
az containerapp dapr enable - 机密:
az containerapp secret set - 传输协议:
az containerapp ingress update
若要自定义容器应用的其他设置(例如资源或缩放设置),请先使用 up 命令部署容器应用。
az containerapp update然后使用命令更改这些设置。 该 az containerapp up 命令不是命令 az containerapp update 的缩写。