快速入门:从本地源代码生成应用并部署到 Azure 容器应用

本文演示如何使用所选的编程语言从本地源代码生成一个微服务并将其部署到 Azure 容器应用。 在本快速入门中,创建一个返回音乐专辑静态集合的后端 Web API 服务。

注意

有两个版本中提供了此示例应用程序。 其中一个版本的源中包含 Dockerfile。 另一个版本没有 Dockerfile。 请选择最能反映源代码的版本。 如果不熟悉容器,请选择顶部“无 Dockerfile”选项。

以下屏幕截图显示你部署的专辑 API 的输出。

屏幕截图显示来自相册 API 终结点的响应。

先决条件

若要完成此项目,需要满足以下条件:

要求 说明
Azure 帐户 如果没有,请创建一个试用版订阅。 需要拥有 Azure 订阅的“参与者”或“所有者”权限才能继续操作。

有关详细信息,请参阅使用 Azure 门户分配 Azure 角色
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.AppMicrosoft.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"

获取示例代码

下载并提取所选语言的 API 示例应用程序。

源代码下载到计算机。

提取下载内容并将其更改到 containerapps-albumapi-csharp-main/src 文件夹中。

源代码下载到计算机。

提取下载内容并将其更改到 containerapps-albumapi-csharp-buildpack/src 文件夹中。


生成并部署容器应用

使用 containerapp up 命令生成和部署你的第一个容器应用。 此命令将会:

  • 创建资源组
  • 创建 Azure 容器注册表
  • 生成容器映像并将其推送到注册表
  • 创建具有 Log Analytics 工作区的容器应用环境
  • 使用生成的容器映像创建和部署容器应用
  • 创建资源组
  • 创建默认注册表作为环境的一部分
  • 检测应用程序的语言和运行时,并使用相应的 Buildpack 生成映像
  • 将映像推送到 Azure 容器应用默认注册表
  • 创建具有 Log Analytics 工作区的容器应用环境
  • 使用生成的容器映像创建和部署容器应用

up 命令使用存储库根目录中的 Dockerfile 生成容器映像。 Dockerfile 中的 EXPOSE 指令定义了目标端口,即用于将入口流量发送到容器的端口。

如果 up 命令找不到 Dockerfile,它会自动使用 Buildpack 将应用程序源转换为可运行容器。 由于 Buildpack 尝试代表你运行生成,因此需要指示 up 命令将入口流量发送到哪个端口。

在以下代码示例中,.(点)指示在提取的示例 API 应用程序的 src 目录中运行 containerapp up

az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --source .
az containerapp up \
  --name $API_NAME \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --ingress external \
  --target-port 8080 \
  --source .

重要

若要将容器应用部署到现有资源组,请在 containerapp up 命令中包含 --resource-group yourResourceGroup

验证部署

将 FQDN 复制到 Web 浏览器。 在 Web 浏览器中,转到 FQDN 的 /albums 终结点。

屏幕截图显示来自相册 API 终结点的响应。

限制

上传源代码的大小上限为 200MB。 如果上传超过该限制,则会返回错误 413。

清理资源

如果不打算继续学习部署前端教程,可以使用以下命令移除在本快速入门中创建的 Azure 资源。

注意

以下命令删除指定的资源组及其包含的所有资源。 如果组包含超出本快速入门范围的资源,这些资源也将被删除。

az group delete --name $RESOURCE_GROUP

提示

遇到问题? 在 Azure 容器应用存储库中提交问题,告知我们有关 GitHub 的信息。

后续步骤

完成本快速入门后,可以继续学习教程:Azure 容器应用中的微服务之间的通信,了解如何部署调用 API 的前端应用程序。