快速入门:将项目文件部署到 Azure 容器应用

本快速入门介绍如何从预构建的项目文件部署容器应用。 本文中的示例使用 JAR 文件部署 Java 应用程序,其中该文件包含特定于 Java 的清单文件。 你的工作是创建一个返回音乐专辑静态集合的后端 Web API 服务。 完成本快速入门后,可以继续学习微服务之间的通信,了解如何部署调用 API 的前端应用程序。

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

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

先决条件

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

有关详细信息,请参阅使用 Azure 门户分配 Azure 角色
GitHub 帐户 免费获得一个。
git 安装 git
Azure CLI 安装 Azure CLI
Java 安装 JDK,建议安装 17 或更高版本
Maven 安装 Maven

设置

若要从 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 中定义以下变量。

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
SUBSCRIPTION=<YOUR_SUBSCRIPTION_ID>

必要时可以查询订阅 ID。

az account list --output table

准备 GitHub 存储库

首先克隆示例存储库。

使用以下 git 命令将示例应用克隆到 code-to-cloud 文件夹

git clone https://github.com/azure-samples/containerapps-albumapi-java code-to-cloud
cd code-to-cloud

生成 JAR 文件

注意

Java 示例仅支持 Maven 生成(会生成可执行 JAR 文件)。 该生成使用默认设置,因为不支持传入环境变量。

使用 Maven 生成项目。

mvn clean package -DskipTests

在本地运行项目

java -jar target\containerapps-albumapi-java-0.0.1-SNAPSHOT.jar

若要验证应用程序是否正在运行,请打开浏览器并转到 http://localhost:8080/albums。 该页返回 JSON 对象的列表。

部署项目

使用 containerapp up 命令从本地 JAR 文件生成并部署第一个容器应用。

此命令:

  • 创建资源组
  • 创建 Azure 容器注册表
  • 生成容器映像并将其推送到注册表
  • 创建具有 Log Analytics 工作区的容器应用环境
  • 使用公共容器映像创建和部署容器应用

up 命令使用存储库根目录中的 Docker 文件生成容器映像。 Docker 文件中的 EXPOSE 指令定义目标端口。 但是,生成容器应用不需要 Docker 文件。

注意

注意:将 containerapp up 与无 Docker 代码库结合使用时,请使用 --location 参数,以便应用程序在除中国东部以外的位置运行。

az containerapp up \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --environment $ENVIRONMENT \
  --artifact ./target/containerapps-albumapi-java-0.0.1-SNAPSHOT.jar \
  --ingress external \
  --target-port 8080 \
  --subscription $SUBSCRIPTION

验证部署

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

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

部署 WAR 文件

还可以从 WAR 文件部署容器应用。

清理资源

如果不打算继续使用此应用程序,可以通过删除资源组来删除 Azure 容器应用实例和所有关联的服务。

按照以下步骤删除创建的资源:

az group delete \
  --resource-group $RESOURCE_GROUP

提示

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

后续步骤