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 Spring Apps 基本/标准计划在中国区域提供,但企业计划并不适用于 Azure 中国的所有区域。

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

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

Azure Spring Apps 有哪些已知限制?

Azure Spring Apps 有以下已知限制:

  • spring.application.name 会被用于创建每个应用程序的应用程序名称替代。
  • server.port 默认为基本/标准计划中的端口 1025。 如果应用任何其他值,则默认值将替代指定的值,因此请避免在代码中指定服务器端口。 如果你的代码显式设置服务器端口而不是使用 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。 标准计划经过优化,可运行常规用途生产流量。 有关限制和功能级别的比较,请参阅 Azure Spring Apps 定价详细信息

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

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

开发

我是一名 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。 这些探测可确定应用程序容器是否已准备好开始接受流量,以及 Azure Spring Apps 是否需要重启应用程序容器。 在内部,Azure Spring Apps 使用 Kubernetes 运行情况探测和就绪情况探测来实现状况监视。

注意

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

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

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

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

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

疑难解答

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

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

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

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

后续步骤

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