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

Azure Spring Apps 常见问题解答

注意

Azure Spring Apps 是 Azure Spring Cloud 服务的新名称。 虽然该服务有新名称,但一些地方仍会使用旧名称,我们仍在更新屏幕截图、视频和图形等资产。

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

本文解答有关 Azure Spring Apps 的常见问题。

常规

为何使用 Azure Spring Apps?

Azure Spring Apps 为 Spring 开发人员提供平台即服务 (PaaS)。 Azure Spring Apps 可以管理应用程序基础结构,使你能够专注于应用程序代码和业务逻辑。 Azure Spring Apps 中内置的核心功能包括 Eureka、Config Server、服务注册表服务器、VMware Tanzu Build Service、蓝绿部署等等。 此服务还可让开发人员将其应用程序绑定到 Azure Cosmos DB、 Azure Database for MySQL 和 Azure Cache for Redis 等其他 Azure 服务。

Azure Spring Apps 通过集成 Azure Monitor、Application Insights 和 Log Analytics 来增强开发人员和运营商的应用程序诊断体验。

Azure Spring Apps 的安全性如何?

安全性和隐私性是 Azure 及 Azure Spring Apps 客户最关注的问题之一。 Azure 将会安全加密所有应用程序数据、日志或配置,有助于确保只有各自的客户才能访问这些数据。

  • Azure Spring Apps 中的服务实例彼此隔离。
  • Azure Spring Apps 提供完整的 TLS/SSL 和证书管理。
  • 适用于 OpenJDK 和 Spring 运行时的关键安全修补程序会尽快应用到 Azure Spring Apps。

Azure Spring Apps 如何托管我的应用程序?

Azure Spring Apps 中的每个服务实例均由具有多个工作器节点的 Azure Kubernetes 服务提供支持。 Azure Spring Apps 管理基础 Kubernetes 群集,包括高可用性、可伸缩性、Kubernetes 版本升级等。

Azure Spring Apps 在基础 Kubernetes 工作器节点上智能地计划应用程序。 为提供高可用性,Azure Spring Apps 在各个节点上分发具有两个或更多个实例的应用程序。

Azure Spring Apps 在哪些区域可用?

参阅各区域的产品可用性

虽然 Azure Spring Apps 基本/标准计划在中国区域提供,但企业计划并不适用于 Azure 中国的所有区域。

是否有客户数据存储在指定区域之外?

Azure Spring Apps 是一种区域服务。 Azure Spring Apps 中的所有客户数据都存储到单个指定区域。 若要了解有关地区和区域的详细信息,请参阅 Azure 中的数据驻留

Azure Spring Apps 有哪些已知限制?

Azure Spring Apps 有以下已知限制:

  • spring.application.name 会被用于创建每个应用程序的应用程序名称替代。
  • 在基本/标准计划中,server.port 默认为端口 1025,而在企业计划中,默认为端口 8080。 如果应用任何其他值,则默认值将替代指定的值,因此请避免在代码中指定服务器端口。 如果你的代码显式设置服务器端口而不是使用 server.port,请确保端口为 10258080,具体取决于 Azure Spring Apps 服务实例的定价计划。
  • Azure 门户、Azure 资源管理器模板和 Terraform 不支持上传应用程序包。 可以通过使用 Azure CLI、Azure DevOps、适用于 Azure Spirng Apps 的 Maven 插件、Azure Toolkit for IntelliJ 和适用于 Azure Spring Apps 的 Visual Studio Code 扩展部署应用程序来上传应用程序包。

有哪些定价计划可用?

我应使用哪一种?每个计划中的限制是什么?

  • Azure Spring Apps 提供三个定价计划:“基本”、“标准”和“企业”。 基本计划面向开发/测试和试用 Azure Spring Apps。 标准计划经过优化,可运行常规用途生产流量。 “企业”计划适用于具有 VMware Tanzu 组件的生产工作负载。 有关限制和功能级别的比较,请参阅 Azure Spring Apps 定价详细信息

服务绑定和服务连接器有什么区别?

我们并没有主动为服务绑定开发更多的功能。 而存在一个名为服务连接器的新解决方案。 一方面,新的解决方案使你能够在 Azure 上的应用托管服务(如应用服务)上保持一致的集成体验。 另一方面,它首先支持 10 多个最常用的目标 Azure 服务,包括 MySQL、SQL DB、Azure Cosmos DB、Postgres DB、Redis 以及存储等,从而更好地满足你的需求。 服务连接器目前为公共预览版,我们邀请你尝试一下新的体验。

如何提供反馈和报告问题?

如果遇到 Azure Spring Apps 的问题,请创建 Azure 支持请求。 若要提交功能请求或提供反馈,请参阅 Azure 反馈

如何获取 VMware Spring 运行时支持(仅限企业计划)

企业计划提供内置的 VMware Spring 运行时支持,因此,如果你认为你的问题在 VMware Spring 运行时支持范围内,则可以向 VMware 开具支持票证。 若要更好地理解 VMware Spring 运行时支持本身,请参阅 VMware Spring 运行时。 若要详细了解如何注册和使用此支持服务,请参阅 VMware 企业计划常见问题解答中的“支持”部分。 对于任何其他问题,请通过 Microsoft 开具支持票证。

重要

创建企业计划实例后,权利会在十个工作日内准备就绪。 如果遇到任何异常,请向 Microsoft 提交支持票证以获取帮助。

开发

我是一名 Spring 开发人员,但不熟悉 Azure。 我想要了解如何在 Azure Spring Apps 中开发应用程序,最快方式是什么?

要以最快的方式开始使用 Azure Spring Apps,请按照快速入门:使用 Azure 门户启动 Azure Spring Apps 中的应用程序中的说明进行操作。

在哪里可以查看 Spring 应用程序日志和指标?

在“应用概述”选项卡和“Azure Monitor”选项卡中可以找到指标。

Azure Spring Apps 支持将 Spring 应用程序日志和指标导出到 Azure 存储、事件中心和 Log Analytics。 Log Analytics 中的表名称是 AppPlatformLogsforSpring。 若要了解如何启用它,请参阅诊断服务

Azure Spring Apps 是否支持分布式跟踪?

是的。 有关详细信息,请参阅使用 Azure Spring Apps 中的 Application Insights Java 进程内代理

服务绑定支持哪些资源类型?

目前支持三个服务:

  • Azure Cosmos DB
  • Azure Database for MySQL
  • Azure Redis 缓存。

是否可以从应用程序内部查看、添加或移动永久性卷?

是的。

Azure Spring Apps 实例有多少出站公共 IP 地址?

出站公共 IP 地址数根据计划和其他因素而异。

Azure Spring Apps 实例类型 默认的出站公共 IP 地址数
基本计划实例 1
标准/企业计划实例 2
VNet 注入实例 1

是否可以增加出站公共 IP 地址的数量?

是,你可以提交支持票证以请求更多出站公共 IP 地址。

删除/移动 Azure Spring Apps 服务实例时,是否也会删除/移动其扩展资源?

这取决于拥有扩展资源的资源提供程序的逻辑。 Microsoft.AppPlatform 实例的扩展资源不属于同一命名空间,因此此行为因资源提供程序而异。 例如,删除/移动操作不会级联到“诊断设置”资源。 如果为新的 Azure Spring Apps 实例预配了与已删除实例相同的资源 ID,或者将先前的 Azure Spring Apps 实例移回,则先前的诊断设置资源将继续对其进行扩展。

可以使用 Azure CLI 删除 Azure Spring Apps 诊断设置:

 az monitor diagnostic-settings delete --name $DIAGNOSTIC_SETTINGS_NAME --resource $AZURE_SPRING_APPS_RESOURCE_ID

Java 运行时和操作系统版本

Azure Spring Apps 中支持哪些版本的 Java 运行时?

Azure Spring Apps 支持具有最新内部版本的 Java LTS 版本,当前支持的版本为 Java 8、Java 11 和 Java17。

Java 8、Java 11 和 Java 17 LTS 版本将受到多长时间的支持?

请参阅针对 Azure 和 Azure Stack 的 Java 长期支持

对于较旧的 Java 运行时,停用策略是什么?

公开通知将在旧的运行时版本停用之前 12 个月发出。 你可以在 12 个月内迁移到更高版本。

  • 订阅管理员将在我们停用 Java 版本时收到电子邮件通知。
  • 停用信息将在文档中发布。

如何获取对 Java 运行时级别的问题的支持?

请参阅针对 Azure 和 Azure Stack 的 Java 长期支持

运行应用的操作系统是什么?

操作系统使用最新的 Ubuntu LTS 版本,目前 Ubuntu 20.04 LTS (Focal Fossa) 是默认操作系统。

操作系统安全修补程序多久应用一次?

适用于 Azure Spring Apps 的安全修补程序每月向生产环境推出。 适用于 Azure Spring Apps 的关键安全修补程序(CVE 评分 >= 9)将尽快推出。

部署

Azure Spring Apps 是否支持蓝绿部署?

是的。 有关详细信息,请参阅设置过渡环境

是否可以访问 Kubernetes 来操作应用程序容器?

不是。 Azure Spring Apps 可使开发人员抽身于底层体系结构,将注意力放在应用程序代码和业务逻辑上。

Azure Spring Apps 是否支持从源构建容器?

是的。 有关详细信息,请参阅快速入门:将第一个应用程序部署到 Azure Spring Apps

Azure Spring Apps 是否支持应用实例中的自动缩放?

是的。 有关详细信息,请参阅为应用程序设置自动缩放功能

Azure Spring Apps 如何监视应用程序的运行状况?

Azure Spring Apps 使用基本/标准定价计划持续探测客户应用程序的端口 1025,或使用企业计划探测端口 8080。 这些探测可确定应用程序容器是否已准备好开始接受流量,以及 Azure Spring Apps 是否需要重启应用程序容器。 在内部,Azure Spring Apps 使用 Kubernetes 运行情况探测和就绪情况探测来实现状况监视。

注意

由于这些探测,在不公开端口 10258080 的情况下,你目前无法在 Azure Spring Apps 中启动应用程序。

我的应用程序是否会重启?何时重启?

是的。 有关详细信息,请参阅使用 Azure 活动日志和 Azure 服务运行状况监视应用生命周期事件

将现有 Spring 应用程序迁移到 Azure Spring Apps 的最佳做法是什么?

有关详细信息,请参阅将 Spring 应用程序迁移到 Azure Spring Apps

.NET Core 版本

支持哪些 .NET Core 版本?

.NET Core 3.1 和更高版本。

支持 .NET Core 3.1 多长时间?

直至 2022 年 12 月 3 日。 请参阅 .NET Core 支持策略

故障排除

极少发生的服务注册表不可用情况会产生什么影响?

在某些罕见的情况下,你可能看到应用程序日志中出现类似于以下示例的错误:

RetryableEurekaHttpClient: Request execution failure with status code 401; retrying on another server if available

Spring 框架会由于网络不稳定或其他网络问题而引发此问题,但这种情况不经常出现。 用户体验不会受到任何影响。 Eureka 客户端中的检测信号和重试策略会处理此问题。 可将此问题视为暂时性错误,可以放心忽略它。

后续步骤

如有其他问题,请参阅 Azure Spring Apps 故障排除指南