快速入门:从存储库生成应用并部署到 Azure 容器应用
本文演示如何使用所选的编程语言从 GitHub 存储库生成一个微服务并将其部署到 Azure 容器应用。 在本快速入门中,将创建一个示例微服务,该微服务表示返回音乐专辑的静态集合的后端 Web API 服务。
有两个版本中提供了此示例应用程序。 一个版本包括一个容器,其中源包含 Dockerfile。 另一个版本没有 Dockerfile。 请选择最能反映源代码的版本。 如果不熟悉容器,请选择顶部的“无 Dockerfile”选项。
注意
还可以从本地文件系统生成和部署此示例应用程序。 有关详细信息,请参阅从本地源代码生成并在 Azure 容器应用中部署应用程序。
以下屏幕截图显示你部署的专辑 API 的输出。
先决条件
若要完成此项目,需要满足以下条件:
要求 | 说明 |
---|---|
Azure 帐户 | 如果没有,请创建一个试用版订阅。 需要拥有 Azure 订阅的“参与者”或“所有者”权限才能继续操作。 有关详细信息,请参阅使用 Azure 门户分配 Azure 角色。 |
GitHub 帐户 | 免费获得一个。 |
git | 安装 git |
Azure CLI | 安装 Azure CLI。 |
设置
若要从 CLI 登录到 Azure,请运行以下命令,然后按照提示完成身份验证过程。
az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud //means return to Public Azure.
为了确保运行最新版本的 CLI,请运行升级命令。
az upgrade
接下来,安装或更新适用于 CLI 的 Azure 容器应用扩展。
如果在 Azure CLI 中运行 az containerapp
命令,或在 Azure PowerShell 中运行 Az.App
模块中的 cmdlet 时收到有关缺少参数的错误,请确保已安装最新版本的 Azure 容器应用扩展。
az extension add --name containerapp --upgrade
注意
从 2024 年 5 月开始,Azure CLI 扩展不再默认启用预览功能。 要访问容器应用预览功能,请使用 --allow-preview true
安装容器应用扩展。
az extension add --name containerapp --upgrade --allow-preview true
现在已安装当前扩展或模块,接下来请注册 Microsoft.App
和 Microsoft.OperationalInsights
命名空间。
注意
Azure 容器应用资源已从 Microsoft.Web
命名空间迁移到 Microsoft.App
命名空间。 如需更多详细信息,请参阅 2022 年 3 月的从 Azure.Web 到 Microsoft.App 的命名空间迁移。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
创建环境变量
完成 Azure CLI 安装后,接下来可以定义要在本文中使用的环境变量。
在 bash shell 中定义以下变量。
export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"
export GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"
在运行此命令之前,请确保将 <YOUR_GITHUB_USERNAME>
替换为你的 GitHub 用户名。
接下来,定义一个对你而言唯一的容器注册表名称。
export ACR_NAME="acaalbums"$GITHUB_USERNAME
准备 GitHub 存储库
在浏览器窗口中,转到首选语言的 GitHub 存储库并创建该存储库的分支。
选择专辑 API 存储库顶部的“创建分支”按钮,以在你的帐户中创建该存储库的分支。 然后复制存储库 URL,以在下一步中使用它。
在浏览器窗口中,转到首选语言的 GitHub 存储库,并分叉包括分支的存储库。
选择专辑 API 存储库顶部的“创建分支”按钮,以在你的帐户中创建该存储库的分支。 取消选中“仅复制 main
分支”以同时为分支分叉 buildpack
。
生成并部署容器应用
使用 containerapp up
命令从分支 GitHub 存储库生成并部署第一个容器应用。 此命令将会:
- 创建资源组
- 创建具有 Log Analytics 工作区的容器应用环境
- 创建 Azure 容器注册表
- 创建 GitHub 操作工作流以生成和部署容器应用
- 创建资源组
- 创建具有 Log Analytics 工作区的容器应用环境
- 自动创建默认注册表作为环境的一部分
- 创建 GitHub 操作工作流以生成和部署容器应用
将新代码推送到存储库时,GitHub 操作将:
- 生成容器映像并将其推送到 Azure 容器注册表
- 将容器映像部署到创建的容器应用
up
命令使用存储库根目录中的 Dockerfile 生成容器映像。 Docker 文件中的 EXPOSE
指令定义目标端口。 生成容器应用不需要 Docker 文件。
- 自动检测语言和运行时
- 使用适当的 Buildpack 生成映像
- 将映像推送到 Azure 容器应用默认注册表
需要访问容器应用才能进入流量。 确保公开端口 8080 以侦听传入请求。
在以下命令中,将 <YOUR_GITHUB_REPOSITORY_NAME>
替换为 https://github.com/<OWNER>/<REPOSITORY-NAME>
或 <OWNER>/<REPOSITORY-NAME>
格式的 GitHub 存储库名称。
在以下命令中,将 <YOUR_GITHUB_REPOSITORY_NAME>
替换为 https://github.com/<OWNER>/<REPOSITORY-NAME>
或 <OWNER>/<REPOSITORY-NAME>
格式的 GitHub 存储库名称。 使用 --branch buildpack
选项指向没有 Dockerfile 的示例源。
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--context-path ./src \
--repo <YOUR_GITHUB_REPOSITORY_NAME>
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--context-path ./src \
--ingress external \
--target-port 8080 \
--repo <YOUR_GITHUB_REPOSITORY_NAME>
--branch buildpack
--
使用 URL 和终端中显示的用户代码,转到浏览器中的 GitHub 设备激活页并在该页输入用户代码。 按照提示授权 Azure CLI 访问 GitHub 存储库。
up
命令将在存储库的 .github/workflows 文件夹中创建 GitHub 操作工作流。 将更改推送到存储库时,会触发工作流来生成和部署容器应用。
验证部署
将 containerapp up
返回的域名复制到 Web 浏览器。 在 Web 浏览器中,转到 URL 的 /albums
终结点。
清理资源
如果不打算继续学习部署前端教程,可以使用以下命令移除在本快速入门中创建的 Azure 资源。
注意
以下命令删除指定的资源组及其包含的所有资源。 如果组包含超出本快速入门范围的资源,这些资源也将被删除。
az group delete --name $RESOURCE_GROUP
提示
遇到问题? 在 Azure 容器应用存储库中提交问题,告知我们有关 GitHub 的信息。
后续步骤
完成本快速入门后,可以继续学习教程:Azure 容器应用中的微服务之间的通信,了解如何部署调用 API 的前端应用程序。