你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn 。
快速入门:将事件驱动的应用程序部署到 Azure Spring Apps
本文内容
本文适用于:✔️ 标准消耗和专用计划(预览版)✔️ 基本/标准计划 ✔️ 企业计划
本文介绍如何将 Spring Boot 事件驱动的应用程序部署到 Azure Spring Apps。
示例项目是一个事件驱动型应用程序,该应用程序订阅名为 lower-case
的服务总线队列 ,然后处理该消息,并将另一条消息发送到另一个名为 upper-case
的队列。 为了简化应用,消息处理只是将消息转换为大写。 下图描述了此过程:
本文介绍用于部署到 Azure Spring Apps 的以下选项:
“Azure 门户”选项是创建资源和部署应用程序的最简单、最快的方式,只需点击一下即可 。 此选项适用于需要将应用程序快速部署到 Azure 云服务的 Spring 开发人员。
“Azure 门户 + Maven 插件”选项是一种更为传统的方法,可用于分步创建资源和部署应用程序 。 此选项适合首次使用 Azure 云服务的 Spring 开发人员。
“Azure Developer CLI”选项是一种更高效的方法,可通过简单的命令自动创建资源和部署应用程序 。 Azure Developer CLI 使用模板来预配所需的 Azure 资源并部署应用程序代码。 此选项适合熟悉 Azure 云服务的 Spring 开发人员。
“Azure 门户”选项是创建资源和部署应用程序的最简单、最快的方式,只需点击一下即可 。 此选项适用于需要将应用程序快速部署到 Azure 云服务的 Spring 开发人员。
“Azure 门户 + Maven 插件”选项是一种更为传统的方法,可用于分步创建资源和部署应用程序 。 此选项适合首次使用 Azure 云服务的 Spring 开发人员。
“Azure CLI”选项使用功能强大的命令行工具管理 Azure 资源 。 此选项适合熟悉 Azure 云服务的 Spring 开发人员。
1.先决条件
2. 准备 Spring 项目
使用以下步骤在本地准备示例:
GitHub 上已准备好示例项目。 使用以下命令克隆示例项目:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用以下命令生成示例项目:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
使用以下步骤在本地准备示例。 这些步骤使用 AZD 从 Azure Developer CLI 模板初始化事件驱动的应用程序。
打开终端,创建新的空文件夹,然后导航到它。
使用以下命令来初始化项目:
azd init --template Azure-Samples/ASA-Samples-Event-Driven-Application
以下列表描述了命令交互:
输入新的环境名称 :提供环境名称,该名称将用作为保存所有 Azure 资源而创建的资源组的后缀。 此名称应在 Azure 订阅中具有唯一性。
控制台输出类似于以下示例的消息:
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3. 准备云环境
运行此示例所需的主要资源是 Azure Spring Apps 实例、Azure Key Vault 和 Azure 服务总线实例。 请执行以下步骤来创建这些资源。
本部分使用“部署到 Azure”按钮在 Azure 门户中启动部署体验 。 此体验使用 ARM 模板 来创建 Azure 资源。
3.1. 登录到 Azure 门户
转到 Azure 门户 ,输入登录到门户所需的凭据。 默认视图是服务仪表板。
3.2. 创建 Azure 资源
按以下步骤创建应用依赖的所有 Azure 资源:
选择以下“部署到 Azure”按钮在 Azure 门户中启动部署体验 :
填写“基本信息”选项卡上的表单 。填写表单时,请参考下表:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
区域
离用户最近的区域。
此区域用于创建资源组。
选择“查看 + 创建”,查看所选内容。 然后选择“创建”将应用部署到 Azure Spring Apps 。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”以打开服务的“概述 ”页。
3.1. 登录到 Azure 门户
打开 Web 浏览器,并转到 Azure 门户 。 输入登录到门户所需的凭据。 默认视图是服务仪表板。
3.2. 创建服务总线实例
使用以下步骤创建服务总线实例:
在 Azure 门户一角选择“创建资源 ”。
在“搜索服务和市场 ”搜索框中,搜索并选择“服务总线 ”。
在“服务总线 ”部分中,选择“创建 ”。
填写“基本信息”选项卡上的表单 。填写表单时,请参考下表:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
命名空间名称
my-srvbus
标识服务总线服务的唯一名称。
位置
最靠近用户的位置。
最靠近用户的位置。
托管选项和计划
基本
定价计划会确定与实例关联的资源和成本。
选择“查看和创建”以查看创建参数。 然后选择“创建”以完成服务总线实例的创建。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”以打开服务的“概述 ”页。
选择“转到资源 ”,以转到“服务总线命名空间 ”页。
在导航菜单上选择“ 共享访问策略”,然后选择“ RootManageSharedAccessKey”。
在“SAS 策略:RootManageSharedAccessKey ”页上,复制并保存“主连接字符串 ”值,该值用于设置来自 Spring 应用的连接。
选择导航菜单上的“ 队列”,然后选择“ 队列”。
在“ 创建队列”页上,为“ 名称”输入 lower-case,然后选择“ 创建”。
为“名称”输入 upper-case 重复上一步来创建另一个队列。
3.3. 创建 Azure Spring Apps 实例
请执行以下步骤来创建服务实例:
在门户的角落选择“创建资源 ”。
选择“计算 >Azure Spring Apps ”。
在“标准消耗型和专用型(预览)”窗体中填写以下信息 :
设置
建议值
描述
订阅
订阅名称
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
名称
myasa
用于标识 Azure Spring Apps 服务的唯一名称。 该名称必须为 4 到 32 个字符,只能包含小写字母、数字及连字符。 服务名称的第一个字符必须是字母,最后一个字符必须是字母或数字。
计划
标准消耗和专用型(预览版)
定价层会确定与实例关联的资源和成本。
区域
离用户最近的区域
最靠近用户的位置。
容器应用环境
myacaenv
环境是围绕一个或多个容器应用的安全边界,这些应用可以相互通信并共享虚拟网络、日志记录和 Dapr 配置。
(可选)使用以下步骤创建容器应用环境:
在“基本信息”选项卡中填写以下信息:
环境名称 :myacaenv
计划 :消耗
区域冗余 :已禁用
选择“创建”以创建容器应用环境 。
在“基本信息”选项卡中填写以下信息:
环境名称 :myacaenv
计划:(预览版)消耗型和专用型工作负载配置文件
区域冗余 :已禁用
选择“工作负载配置文件(预览版)”选项卡,然后选择“添加工作负载配置文件”,以添加工作负载配置文件。
在“添加工作负载配置文件(预览版)”页面 上,添加以下信息:
工作负载配置文件名称:my-wlp
工作负载配置文件大小:请选择“专用-D4”
自动扩缩实例计数范围:选择“3”和“5”
选择添加 。 选择后会返回到“添加工作负载配置文件(预览)”页面。 选择“my-wlp”,然后选择“创建”以创建容器应用环境。
选择“查看 + 创建”,查看所选内容。 选择“创建”来预配 Azure Spring Apps 实例。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”可打开服务的“概述 ”页。
选择“转到资源”,转到“Azure Spring Apps 概述”页面。
在左侧导航菜单中选择“应用”,然后选择“创建应用” 。
在“创建应用”页面上,输入 simple-event-driven-app
作为“应用名称”,然后选择“使用快速启动示例应用”以创建应用 。
选择“创建”以完成 Azure Spring Apps 实例的创建。
创建应用后,选择在上一步中创建的应用名称。
从导航窗格中选择“配置”,然后在“环境变量”选项卡上配置以下属性。
SERVICE_BUS_CONNECTION_STRING :输入服务总线主连接字符串。
选择“保存”以保存连接属性 。
使用以下命令以通过 OAuth2 登录 Azure。 如果已登录,请忽略此步。
azd auth login
控制台输出类似于以下示例的消息:
Logged in to Azure.
运行以下命令,以将模板的基础结构预配到 Azure:
azd provision
以下列表描述了命令交互:
请选择要使用的 Azure 订阅:使用箭头移动,键入以进行筛选,然后按 Enter。
请选择要使用的 Azure 位置:使用箭头移动,键入以进行筛选,然后按 Enter。
控制台输出类似于以下示例的消息:
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name>-<random-string>> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
注意
此命令可能需要一段时间才能完成。 预配 Azure 资源时,系统会显示进度指示器。
4. 将应用部署到 Azure Spring Apps
上一部分中的“部署到 Azure”按钮将启动包含应用程序部署的 Azure 门户体验,因此无需执行任何其他操作 。
按照以下步骤,使用适用于 Azure Spring Apps 的 Maven 插件 进行部署:
导航到完整目录,然后运行以下命令以在 Azure Spring Apps 中配置应用 :
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
以下列表描述了命令交互:
OAuth2 登录 :你需要根据 OAuth2 协议授权到 Azure 的登录。
选择订阅 :选择所创建的 Azure Spring Apps 实例的订阅列表编号,它默认为列表中的第一个订阅。 如果使用默认编号,请直接按 Enter 。
使用 Azure 中的现有 Azure Spring Apps :按 y 使用现有的 Azure Spring Apps 实例。
选择要部署的 Azure Spring Apps :选择所创建的 Azure Spring Apps 实例的列表编号。 如果使用默认编号,请直接按 Enter 。
在 Azure Spring Apps 中使用现有应用 <your-instance-name> :按 y 使用已创建的应用。
确认保存上述所有配置 :按 y 。 如果按 n ,则配置不会保存在 POM 文件中。
使用以下命令部署应用:
./mvnw azure-spring-apps:deploy
以下列表描述了命令交互:
OAuth2 登录 :你需要根据 OAuth2 协议授权到 Azure 的登录。
执行命令后,你会从以下日志消息中看到部署已成功:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
按照以下步骤使用 AZD 打包应用,预配 Web 应用程序所需的 Azure 资源,然后部署到 Azure Spring Apps。
使用以下命令打包应用程序的可部署副本:
azd package
控制台输出类似于以下示例的消息:
SUCCESS: Your application was packaged for Azure in xx seconds.
使用以下命令将应用程序代码部署到这些新预配的资源:
azd deploy
控制台输出类似于以下示例的消息:
Deploying services (azd deploy)
(✓) Done: Deploying service simple-event-driven-app
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
2. 准备 Spring 项目
使用以下步骤在本地准备示例:
GitHub 上已准备好示例项目。 使用以下命令克隆示例项目:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用以下命令生成示例项目:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
使用以下步骤在本地准备示例。 这些步骤使用 AZD 从 Azure Developer CLI 模板初始化事件驱动的应用程序。
打开终端,创建新的空文件夹,然后导航到它。
使用以下命令来初始化项目:
azd init --template Azure-Samples/ASA-Samples-Event-Driven-Application
以下列表描述了命令交互:
输入新的环境名称 :提供环境名称,该名称将用作为保存所有 Azure 资源而创建的资源组的后缀。 此名称应在 Azure 订阅中具有唯一性。
控制台输出类似于以下示例的消息:
Initializing a new project (azd init)
(✓) Done: Initialized git repository
(✓) Done: Downloading template code to: <your-local-path>
Enter a new environment name: <your-env-name>
SUCCESS: New project initialized!
You can view the template code in your directory: <your-local-path>
Learn more about running 3rd party code on our DevHub: https://aka.ms/azd-third-party-code-notice
3. 准备云环境
运行此示例所需的主要资源是 Azure Spring Apps 实例、Azure 密钥保管库实例和 Azure 服务总线实例。 请执行以下步骤来创建这些资源。
本部分使用“部署到 Azure”按钮在 Azure 门户中启动部署体验 。 此体验使用 ARM 模板 来创建 Azure 资源。
3.1. 登录到 Azure 门户
转到 Azure 门户 ,输入登录到门户所需的凭据。 默认视图是服务仪表板。
3.2. 创建 Azure 资源
按以下步骤创建应用依赖的所有 Azure 资源:
选择以下“部署到 Azure”按钮在 Azure 门户中启动部署体验 :
填写“基本信息”选项卡上的表单 。填写表单时,请参考下表:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
区域
离用户最近的区域。
此区域用于创建资源组。
选择“查看 + 创建”,查看所选内容。 然后选择“创建”将应用部署到 Azure Spring Apps 。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”以打开服务的“概述 ”页。
3.1. 登录到 Azure 门户
打开 Web 浏览器,并转到 Azure 门户 。 输入登录到门户所需的凭据。 默认视图是服务仪表板。
3.2. 创建服务总线实例
使用以下步骤创建服务总线实例:
在 Azure 门户一角选择“创建资源 ”。
在“搜索服务和市场 ”搜索框中,搜索并选择“服务总线 ”。
在“服务总线 ”部分中,选择“创建 ”。
填写“基本信息”选项卡上的表单 。填写表单时,请参考下表:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
命名空间名称
my-srvbus
标识服务总线服务的唯一名称。
位置
最靠近用户的位置。
最靠近用户的位置。
托管选项和计划
基本
定价计划会确定与实例关联的资源和成本。
选择“查看和创建”以查看创建参数。 然后选择“创建”以完成服务总线实例的创建。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”以打开服务的“概述 ”页。
选择“转到资源 ”,以转到“服务总线命名空间 ”页。
在导航菜单上选择“ 共享访问策略”,然后选择“ RootManageSharedAccessKey”。
在“SAS 策略:RootManageSharedAccessKey ”页上,复制并保存“主连接字符串 ”值,该值用于设置来自 Spring 应用的连接。
选择导航菜单上的“ 队列”,然后选择“ 队列”。
在“ 创建队列”页上,为“ 名称”输入 lower-case,然后选择“ 创建”。
为“名称”输入 upper-case 重复上一步来创建另一个队列。
3.3. 创建 Azure Spring Apps 实例
使用以下步骤创建 Azure Spring Apps 实例:
在 Azure 门户一角选择“创建资源 ”。
选择“计算 >Azure Spring Apps ”。
填写“基本”表单,其中包含以下信息:
以下表为指南来填写窗体。 建议的计划 为是基本 。
设置
建议值
描述
订阅
订阅名称
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
名称
myasa
用于标识 Azure Spring Apps 服务的唯一名称。 该名称必须为 4 到 32 个字符,只能包含小写字母、数字及连字符。 服务名称的第一个字符必须是字母,最后一个字符必须是字母或数字。
规划
标准
价格决定了与实例关联的资源和成本。
区域
离用户最近的区域
最靠近用户的位置。
区域冗余
未选定
是否在 Azure 可用性区域中创建 Azure Spring Apps 服务,目前仅有几个区域支持该服务。
选择“查看 + 创建”,查看所选内容。 选择“创建”来预配 Azure Spring Apps 实例。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板 ”,以便在 Azure 门户仪表板上为此服务创建磁贴作为到此服务的“概述 ”页的快捷方式。 选择“转到资源 ”可打开服务的“概述 ”页。
3.4. 将应用实例连接到服务总线实例
在 Azure 门户中转到 Azure Spring Apps 实例。
在导航菜单中选择“应用 ”,然后选择“创建应用 ”。
在“创建应用 ”页上,为“应用名称 ”输入 simple-event-driven-app ,然后为“运行时平台 ”选择“Java 17 ”。
创建应用后,选择在上一步中创建的应用名称。
在“配置 ”页上,选择“环境变量 ”选项卡,输入 SERVICE_BUS_CONNECTION_STRING 作为“密钥 ”,粘贴服务总线连接字符串作为“值 ”,然后选择“保存 ”。
使用以下命令通过 OAuth2 登录到 Azure CLI。 如果已登录,请忽略此步。
azd auth login
控制台输出类似于以下示例的消息:
Logged in to Azure.
使用以下命令通过标准 计划设置模板:
azd env set PLAN standard
使用以下命令打包应用程序的可部署副本,将模板的基础结构预配到 Azure,并将应用程序代码部署到这些新预配的资源:
azd provision
以下列表描述了命令交互:
选择要使用的 Azure 订阅 :使用箭头移动,键入以进行筛选,然后按 Enter。
选择要使用的 Azure 位置 :使用箭头移动,键入以进行筛选,然后按 Enter。
控制台输出类似于以下示例的消息:
SUCCESS: Your application was provisioned in Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
注意
此命令可能需要一段时间才能完成。 预配 Azure 资源时,系统将会显示进度指示器。
4. 将应用部署到 Azure Spring Apps
上一部分中的“部署到 Azure”按钮将启动包含应用程序部署的 Azure 门户体验,因此无需执行任何其他操作 。
按照以下步骤,使用适用于 Azure Spring Apps 的 Maven 插件 进行部署:
导航到完整目录,然后运行以下命令以在 Azure Spring Apps 中配置应用 :
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
以下列表描述了命令交互:
OAuth2 登录 :你需要根据 OAuth2 协议授权到 Azure 的登录。
选择订阅 :选择所创建的 Azure Spring Apps 实例的订阅列表编号,它默认为列表中的第一个订阅。 如果使用默认编号,请直接按 Enter 。
使用 Azure 中的现有 Azure Spring Apps :按 y 使用现有的 Azure Spring Apps 实例。
选择要部署的 Azure Spring Apps :选择所创建的 Azure Spring Apps 实例的列表编号。 如果使用默认编号,请直接按 Enter 。
在 Azure Spring Apps 中使用现有应用 <your-instance-name> :按 y 使用已创建的应用。
确认保存上述所有配置 :按 y 。 如果按 n ,则配置不会保存在 POM 文件中。
使用以下命令部署应用:
./mvnw azure-spring-apps:deploy
以下列表描述了命令交互:
OAuth2 登录 :你需要根据 OAuth2 协议授权到 Azure 的登录。
执行命令后,你会从以下日志消息中看到部署已成功:
[INFO] Deployment(default) is successfully created
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
按照以下步骤使用 AZD 打包应用,预配 Web 应用程序所需的 Azure 资源,然后部署到 Azure Spring Apps。
使用以下命令打包应用程序的可部署副本:
azd package
控制台输出类似于以下示例的消息:
SUCCESS: Your application was packaged for Azure in xx seconds.
使用以下命令将应用程序代码部署到这些新预配的资源:
azd deploy
控制台输出类似于以下示例的消息:
Deploying services (azd deploy)
(✓) Done: Deploying service simple-event-driven-app
- No endpoints were found
SUCCESS: Your application was deployed to Azure in xx minutes xx seconds.
You can view the resources created under the resource group rg-<your-environment-name> in Azure Portal:
https://portal.azure.com/#@/resource/subscriptions/<your-subscription-id>/resourceGroups/rg-<your-environment-name>/overview
2. 准备 Spring 项目
使用以下步骤在本地准备示例:
GitHub 上已准备好示例项目。 使用以下命令克隆示例项目:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用以下命令生成示例项目:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
使用以下步骤在本地准备示例:
GitHub 上已准备好示例项目。 使用以下命令克隆示例项目:
git clone https://github.com/Azure-Samples/ASA-Samples-Event-Driven-Application.git
使用以下命令生成示例项目:
cd ASA-Samples-Event-Driven-Application
./mvnw clean package
3. 准备云环境
运行此示例所需的主要资源是 Azure Spring Apps 实例和 Azure 服务总线实例。 以下部分介绍如何创建这些资源。
本部分使用“部署到 Azure”按钮在 Azure 门户中启动部署体验 。 此体验使用 ARM 模板 来创建 Azure 资源。
3.1. 登录到 Azure 门户
转到 Azure 门户 ,输入登录到门户所需的凭据。 默认视图是服务仪表板。
3.2. 创建 Azure 资源
按以下步骤创建应用依赖的所有 Azure 资源:
选择以下“部署到 Azure”按钮在 Azure 门户中启动部署体验 :
填写“基本信息”选项卡上的表单 。填写表单时,请参考下表:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
区域
离用户最近的区域。
此区域用于创建资源组。
选择“查看 + 创建”,查看所选内容。 然后选择“创建”将应用部署到 Azure Spring Apps 。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”以打开服务的“概述 ”页。
3.1. 登录到 Azure 门户
转到 Azure 门户 ,输入登录到门户所需的凭据。 默认视图是服务仪表板。
3.2. 创建服务总线实例
使用以下步骤创建服务总线实例:
在 Azure 门户一角选择“创建资源 ”。
在“搜索服务和市场 ”搜索框中,搜索并选择“服务总线 ”。
在“服务总线 ”部分中,选择“创建 ”。
填写“基本信息”选项卡上的表单 。填写表单时,请参考下表:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
命名空间名称
my-srvbus
标识服务总线服务的唯一名称。
位置
最靠近用户的位置。
最靠近用户的位置。
托管选项和计划
基本
定价计划会确定与实例关联的资源和成本。
选择“查看和创建”以查看创建参数。 然后选择“创建”以完成服务总线实例的创建。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。 选择“转到资源 ”以打开服务的“概述 ”页。
选择“转到资源 ”,以转到“服务总线命名空间 ”页。
选择导航菜单上的“队列 ”,然后选择“队列 ”。
在“ 创建队列”页上,为“ 名称”输入 lower-case,然后选择“ 创建”。
为“名称”输入 upper-case 重复上一步来创建另一个队列。
3.3. 创建 Azure Spring Apps 实例
请执行以下步骤来创建服务实例:
在 Azure 门户一角选择“创建资源 ”。
选择“计算 >Azure Spring Apps ”。
填写“基本”表单,其中包含以下信息:
设置
建议值
描述
订阅
你的订阅名称。
要用于服务器的 Azure 订阅。 如果你有多个订阅,请选择要计费的资源所在的订阅。
资源组
myresourcegroup
新的资源组名称,或订阅中的现有资源组。
名称
myasa
用于标识 Azure Spring Apps 服务的唯一名称。 该名称必须为 4 到 32 个字符,只能包含小写字母、数字及连字符。 服务名称的第一个字符必须是字母,最后一个字符必须是字母或数字。
区域
离用户最近的区域。
最靠近用户的位置。
托管选项和计划
企业
定价计划确定与实例关联的资源和成本。
区域冗余
未选定
在 Azure 可用性区域中创建 Azure Spring Apps 服务的选项。 此功能目前在所有区域都不受支持。
软件 IP 计划
即用即付
使用 Azure Spring Apps 进行即用即付的定价计划。
部署示例项目
未选定
使用内置示例应用程序的选项。
选择“查看 + 创建”,查看所选内容。 然后,选择“创建”以预配 Azure Spring Apps 实例 。
在工具栏上选择“通知”图标(铃铛)以监视部署过程。 完成部署后,可以选择“固定到仪表板”,以便在 Azure 门户仪表板上为此服务创建磁贴作为前往此服务的“概述”页的快捷方式。
选择“转到资源”,转到“Azure Spring Apps 概述”页面。
3.4. 将应用实例连接到服务总线实例
遵循以下步骤连接服务实例:
在 Azure 门户中转到 Azure Spring Apps 实例。
在导航窗格中,打开“应用”窗格,然后选择“创建应用” 。
在“ 创建应用”页上,对于应用名称,请使用 simple-event-driven-app,并将所有其他字段保留其默认值。
选择“创建 ”以完成应用创建,然后选择该应用以查看详细信息。
从导航窗格中选择“服务连接器 ”,然后选择“创建 ”以创建新的服务连接。
在“基本信息”选项卡中填写以下信息:
服务类型:选择“服务总线” 。
连接名称 :填充了可以修改的自动生成的名称。
订阅 :选择订阅。
命名空间:选择创建的命名空间。
客户端类型:选择 “SpringBoot”。
使用以下信息配置配置“下一步: 身份验证 ”选项卡:
选择要在计算服务和目标服务之间使用的身份验证类型 :选择“连接字符串 ”。
选择“下一页:网络”。 使用默认选项“配置防火墙规则以启用对目标服务的访问权限 ”。
选择“下一步: 查看并创建 ”以查看选择,然后选择“创建 ”以创建连接。
3.1. 提供每个资源的名称
使用以下命令创建变量以保存资源名称。 请务必将占位符替换为你自己的值。
export RESOURCE_GROUP=<event-driven-app-resource-group-name>
export LOCATION=<desired-region>
export SERVICE_BUS_NAME_SPACE=<event-driven-app-service-bus-namespace>
export AZURE_SPRING_APPS_INSTANCE=<Azure-Spring-Apps-instance-name>
export APP_NAME=<event-driven-app-name>
3.2. 创建新的资源组
按照以下步骤创建新的资源组:
使用以下命令登录到 Azure CLI:
az login
使用以下命令设置默认位置:
az configure --defaults location=${LOCATION}
使用以下命令列出所有可用的订阅,以确定要使用的订阅 ID:
az account list --output table
使用以下命令设置默认订阅:
az account set --subscription <subscription-ID>
使用以下命令来创建资源组:
az group create --resource-group ${RESOURCE_GROUP}
使用以下命令将新创建的资源组设置为默认资源组:
az configure --defaults group=${RESOURCE_GROUP}
3.3. 安装扩展并注册命名空间
使用以下命令安装适用于 Azure CLI 的 Azure Spring Apps 扩展并注册 Microsoft.SaaS
命名空间:
az extension add --name spring --upgrade
az provider register --namespace Microsoft.SaaS
3.4. 创建 Azure Spring Apps 实例
使用以下命令创建 Azure Spring Apps 实例:
az spring create \
--name ${AZURE_SPRING_APPS_INSTANCE} \
--sku Enterprise
然后使用以下命令在 Azure Spring Apps 实例中创建应用:
az spring app create \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME}
3.5. 创建服务总线实例
使用以下步骤创建服务总线实例:
使用以下命令以创建服务总线命名空间:
az servicebus namespace create --name ${SERVICE_BUS_NAME_SPACE}
使用以下命令创建名为 lower-case
和 upper-case
的两个队列:
az servicebus queue create \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name lower-case
az servicebus queue create \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name upper-case
3.6. 将应用实例连接到服务总线实例
现已创建服务总线并在 Azure Spring Apps 中创建应用,但该应用无法连接到服务总线。 使用以下步骤支持应用连接到服务总线,然后部署该应用:
使用以下命令获取服务总线的连接字符串:
export SERVICE_BUS_CONNECTION_STRING=$( \
az servicebus namespace authorization-rule keys list \
--namespace-name ${SERVICE_BUS_NAME_SPACE} \
--name RootManageSharedAccessKey \
--query primaryConnectionString \
--output tsv)
使用以下命令通过环境变量向应用提供连接字符串:
az spring app update \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME} \
--env SPRING_CLOUD_AZURE_SERVICEBUS_CONNECTIONSTRING=${SERVICE_BUS_CONNECTION_STRING} \
SPRING_CLOUD_AZURE_KEYVAULT_SECRET_PROPERTYSOURCEENABLED=false
4. 将应用部署到 Azure Spring Apps
上一部分中的“部署到 Azure”按钮将启动包含应用程序部署的 Azure 门户体验,因此无需执行任何其他操作 。
按照以下步骤,使用适用于 Azure Spring Apps 的 Maven 插件 进行部署:
导航到完整目录,然后运行以下命令以在 Azure Spring Apps 中配置应用 :
./mvnw com.microsoft.azure:azure-spring-apps-maven-plugin:1.19.0:config
以下列表描述了命令交互:
OAuth2 登录 :你需要根据 OAuth2 协议授权到 Azure 的登录。
选择订阅 :选择所创建的 Azure Spring Apps 实例的订阅列表编号,它默认为列表中的第一个订阅。 如果使用默认编号,请直接按 Enter 。
使用 Azure 中的现有 Azure Spring Apps :按 y 使用现有的 Azure Spring Apps 实例。
选择要部署的 Azure Spring Apps :选择所创建的 Azure Spring Apps 实例的列表编号。 如果使用默认编号,请直接按 Enter 。
在 Azure Spring Apps 中使用现有应用 <your-instance-name> :按 y 使用已创建的应用。
确认保存上述所有配置 :按 y 。 如果按 n ,则配置不会保存在 POM 文件中。
使用以下命令部署应用:
./mvnw azure-spring-apps:deploy
以下列表描述了命令交互:
OAuth2 登录 :你需要根据 OAuth2 协议授权到 Azure 的登录。
执行命令后,你会从以下日志消息中看到部署已成功:
[INFO] Starting Spring App after deploying artifacts...
[INFO] Deployment Status: Running
云环境现已准备就绪。 使用以下命令部署应用:
az spring app deploy \
--service ${AZURE_SPRING_APPS_INSTANCE} \
--name ${APP_NAME} \
--artifact-path target/simple-event-driven-app-0.0.2-SNAPSHOT.jar
5. 验证应用
使用以下步骤确认事件驱动型应用正常工作。 可以通过向 lower-case
队列发送消息,然后确认 upper-case
队列中存在消息来验证应用。
6.清理资源
当不再需要在本文中创建的资源时,请务必将其删除。 可以删除 Azure 资源组,其中包括资源组中的所有资源。
按照以下步骤删除整个资源组(包括新创建的服务器):
在 Azure 门户中查找资源组。 在导航菜单上,选择“资源组”,然后选择资源组的名称 。
在“资源组”页上,选择“删除” 。 在文本框中输入资源组的名称以确认删除,然后选择“删除 ”。
按照以下步骤删除整个资源组(包括新创建的服务器):
在 Azure 门户中查找资源组。 在导航菜单上,选择“资源组”,然后选择资源组的名称 。
在“资源组”页上,选择“删除” 。 在文本框中输入资源组的名称以确认删除,然后选择“删除 ”。
使用以下命令删除整个资源组,包括新创建的服务:
az group delete --name ${RESOURCE_GROUP}
按照以下步骤删除整个资源组(包括新创建的服务器):
在 Azure 门户中查找资源组。 在导航菜单上,选择“资源组”,然后选择资源组的名称 。
在“资源组”页上,选择“删除” 。 在文本框中输入资源组的名称以确认删除,然后选择“删除 ”。
按照以下步骤删除整个资源组(包括新创建的服务器):
在 Azure 门户中查找资源组。 在导航菜单上,选择“资源组”,然后选择资源组的名称 。
在“资源组”页上,选择“删除” 。 在文本框中输入资源组的名称以确认删除,然后选择“删除 ”。
使用以下命令删除此示例应用程序中使用的所有 Azure 资源:
azd down
以下列表描述了命令交互:
要删除的资源总数:<your-resources-total>,是否确实要继续? :按 y 。
是否要改为永久删除这些资源,允许重复使用它们的名称? :按 y 。 如果要重复使用密钥保管库,请按 n 。
控制台输出类似于以下示例的消息:
SUCCESS: Your application was removed from Azure in xx minutes xx seconds.
7. 后续步骤
有关详细信息,请参阅以下文章: