你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

如何从 Azure CLI 部署 Spring Boot

注意

从 2025 年 3 月中旬开始,基本、标准和企业计划将弃用,停用期为三年。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

从 2024 年 9 月 30 日开始,标准消耗和专用计划将弃用,六个月后将完全关闭。 建议过渡到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用

本文适用于:✔️ Java C#

本文适用于:✔️ 基本/标准层 ❌ 企业层

通过 Azure Spring Apps,可以在 Azure 上托管 Spring Boot 应用程序。

可直接从 Java 源代码或预构建的 JAR 启动应用程序。 本文介绍部署过程。

先决条件

在开始之前,请确保 Azure 订阅已安装所需的依赖项:

  1. 安装 Git
  2. 安装 JDK 8
  3. 安装 Maven 3.0 或更高版本
  4. 安装 Azure CLI
  5. 注册 Azure 订阅

提示

Azure Cloud Shell 是免费的交互式 shell,可以使用它运行本文中的步骤。 它预装有常用的 Azure 工具,其中包括最新版的 Git、JDK、Maven 和 Azure CLI。 如果你已登录到 Azure 订阅,请从 shell.azure.com 启动 Azure Cloud Shell。 若要详细了解 Azure Cloud Shell,请阅读我们的文档

安装 Azure CLI 扩展

通过以下命令安装用于 Azure CLI 的 Azure Spring Apps 扩展

az extension add --name spring

使用 Azure CLI 预配服务实例

登录到 Azure CLI 并选择你的有效订阅。

az login
az account list -o table
az account set --subscription <subscription-id>

在 Azure Spring Apps 中创建资源组以包含你的服务。 你可以详细了解 Azure 资源组

az group create --location eastus --name <resource-group-name>

运行以下命令以预配 Azure Spring Apps 的实例。 为 Azure Spring Apps 中的服务准备名称。 该名称必须为 4 到 32 个字符,只能包含小写字母、数字及连字符。 服务名称的第一个字符必须是字母,最后一个字符必须是字母或数字。

az spring create --resource-group <resource-group-name> --name <resource-name>

部署服务实例需要大约五分钟时间。

使用以下命令设置默认的资源组名称和 Azure Spring Apps 实例名称:

az config set defaults.group=<service-group-name>
az config set defaults.spring=<service-instance-name>

在 Azure Spring Apps 中创建应用程序

以下命令在订阅中创建 Azure Spring Apps 中的应用程序。 此操作将创建一个空的服务,你可以将其上传到应用程序。

az spring app create --name <app-name>

部署 Spring Boot 应用程序

可以从预构建的 JAR 或从 Gradle 或 Maven 存储库部署应用程序。 在下面找到每种情况的说明。

部署预构建的 JAR

若要从在本地计算机上构建的 JAR 进行部署,请确保构建生成 fat-JAR

将 fat-JAR 部署到活动部署

az spring app deploy --name <app-name> --artifact-path <path-to-fat-JAR>

将 fat-JAR 部署到特定部署

az spring app deployment create --app <app-name> \
    --name <deployment-name> \
    --artifact-path <path-to-fat-JAR>

从源代码进行部署

Azure Spring Apps 使用 kpack 构建项目。 可以使用 Azure CLI 上传源代码,使用 kpack 构建项目,并将其部署到目标应用程序。

警告

项目只能生成一个 JAR 文件,该文件在 target(适用于 Maven 部署)或 build/libs(适用于 Gradle 部署)的 MANIFEST.MF 中具有 main-class 条目。 多个带有 main-class 条目的 JAR 文件将导致部署失败。

对于单模块 Maven/Gradle 项目:

cd <path-to-maven-or-gradle-source-root>
az spring app deploy --name <app-name> --source-path

对于包含多个模块的 Maven/Gradle 项目,请对每个模块重复以下步骤:

cd <path-to-maven-or-gradle-source-root>
az spring app deploy --name <app-name> --source-path \
    --target-module <relative-path-to-module>

显示部署日志

使用以下命令查看 kpack 生成日志:

az spring app show-deploy-log --name <app-name>

注意

如果部署是使用 kpack 从源生成的,则 kpack 日志将仅显示最新部署。

向应用程序分配公共终结点

  1. 打开“应用”窗格,查看服务实例的应用。
  2. 选择应用程序以查看其“概述”页面。
  3. 选择“分配终结点”,将一个公共终结点分配到应用程序。 此过程可能需要几分钟。
  4. 从“概述”页面复制 URL,然后将其粘贴到浏览器中以查看正在运行的应用程序。

后续步骤

快速入门:通过日志、指标和跟踪来监视 Azure Spring Apps

GitHub 中提供了更多示例:Azure Spring Apps 示例