快速入门:从本地源代码生成应用并部署到 Azure 容器应用
本文演示如何使用所选的编程语言从本地源代码生成一个微服务并将其部署到 Azure 容器应用。 在本快速入门中,创建一个返回音乐专辑静态集合的后端 Web API 服务。
以下屏幕截图显示你部署的专辑 API 的输出。
先决条件
若要完成此项目,需要满足以下条件:
要求 | 说明 |
---|---|
Azure 帐户 | 如果没有,请创建一个试用版订阅。 需要拥有 Azure 订阅的“参与者”或“所有者”权限才能继续操作。 有关详细信息,请参阅使用 Azure 门户分配 Azure 角色。 |
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 容器应用扩展。
az extension add --name containerapp --upgrade --allow-preview true
安装当前扩展后,请注册 Microsoft.App
和 Microsoft.OperationalInsights
命名空间。
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
创建环境变量
完成 CLI 安装后,接下来可以定义要在本文中使用的环境变量。 完成 CLI 安装后,接下来可以定义要在本文中使用的环境变量。
在 bash shell 中定义以下变量。
export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"
获取示例代码
运行以下命令,以克隆你选择的语言的示例应用程序,并更改到项目源文件夹。
git clone https://github.com/azure-samples/containerapps-albumapi-csharp.git
cd containerapps-albumapi-csharp/src
生成并部署容器应用
首先,运行以下命令来创建资源组,该资源组将包含你在本快速入门中创建的资源。
az group create --name $RESOURCE_GROUP --location $LOCATION
使用 containerapp up
命令生成和部署你的第一个容器应用。 此命令将会:
- 创建资源组
- 创建 Azure 容器注册表
- 生成容器映像并将其推送到注册表
- 创建具有 Log Analytics 工作区的容器应用环境
- 使用生成的容器映像创建和部署容器应用
up
命令使用项目文件夹中的 Dockerfile 来构建容器映像。 Dockerfile 中的 EXPOSE
指令定义目标端口,即用于将入口流量发送到容器的端口。
在下面的代码示例中,.
(点)指示 containerapp up
在项目的当前目录中运行,该目录还包含 Dockerfile。
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--source .
注意
如果命令返回错误消息“AADSTS50158:外部安全质询未满足”,请运行 az login --scope https://graph.chinacloudapi.cn//.default
以使用所需权限登录,然后再次运行 az containerapp up
命令。
验证部署
在 az containerapp up
命令的输出中找到容器应用的 URL。 导航到浏览器中的 URL。 将 /albums
添加到 URL 末尾,以查看来自 API 的响应。
限制
上传源代码的大小上限为 200MB。 如果上传超过该限制,则会返回错误 413。
清理资源
如果不打算继续学习部署前端教程,可以使用以下命令移除在本快速入门中创建的 Azure 资源。
注意
以下命令删除指定的资源组及其包含的所有资源。 如果组包含超出本快速入门范围的资源,这些资源也将被删除。
az group delete --name $RESOURCE_GROUP
提示
遇到问题? 在 Azure 容器应用存储库中提交问题,告知我们有关 GitHub 的信息。
后续步骤
完成本快速入门后,可以继续学习教程:Azure 容器应用中的微服务之间的通信,了解如何部署调用 API 的前端应用程序。