Compartilhar via

Azure Spring Apps 常见问题解答

注意事项

基本计划和标准计划于 2025 年 3 月 17 日进入退休期。 有关详细信息,请参阅 Azure Spring Apps 停用公告

本文适用于:✅ 基本/标准

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

常规

为什么Azure Spring Apps?

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

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

Azure Spring Apps 有多安全?

安全和隐私是 Azure 和 Azure Spring Apps 客户的首要任务之一。 Azure通过安全地加密所有这些数据,帮助确保只有客户对应用程序数据、日志或配置access。

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

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

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

Azure Spring Apps 智能地调度 Kubernetes 基础工作节点上的应用程序。 为了提供高可用性,Azure Spring Apps 在不同节点上分发具有两个或多个实例的应用程序。

哪些区域Azure Spring Apps 可用?

请参阅区域提供的产品

虽然 Azure Spring Apps Basic/Standard 计划在中国的区域可用,但企业计划在中国Azure的所有区域均不可用。

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

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

Azure Spring Apps 的已知限制是什么?

Azure Spring Apps 具有以下已知限制:

  • spring.application.name 会被用于创建每个应用程序的应用程序名称替代。
  • server.port 默认为基本/标准计划中的端口 1025。 如果应用任何其他值,则默认值将替代指定的值,因此请避免在代码中指定服务器端口。 如果代码显式设置服务器端口而不是使用server.port,请根据 Azure Spring Apps 服务实例的定价计划,确保端口设置为10258080
  • Azure portal、Azure Resource Manager模板和 Terraform 不支持上传应用程序包。 可以通过使用 Azure CLI、Azure DevOps、适用于 Azure Spring 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 Support Request。 若要提交功能请求或提供反馈,请转到 Azure 反馈

开发

我是 Spring 开发人员,但不熟悉Azure。 了解如何在 Azure Spring Apps 中开发应用程序的最快速方法是什么?

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

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

在“应用概述”选项卡和“Azure监视器选项卡中查找指标。

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

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

是的。 有关详细信息,请参阅 在 Azure Spring Apps 中使用 Application Insights Java In-Process 代理

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

目前支持三个服务:

  • Azure Cosmos DB
  • 适用于 MySQL 的 Azure 数据库
  • Azure Cache for Redis。

可以从应用程序内部查看、添加或移动持久卷吗?

是的。

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

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

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

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

可以打开支持请求来请求更多的出站公共 IP 地址。

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

这取决于拥有这些扩展资源的资源提供商的逻辑。 Microsoft.AppPlatform 实例的扩展资源不属于同一命名空间,因此此行为因资源提供程序而异。 例如,删除/移动操作不会级联到“诊断设置”资源。 如果预配了一个与先前被删除的资源 ID 相同的新 Azure Spring Apps 实例,或者将先前的 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、Java 17 和 Java 21。

对 Java 8、Java 11、Java 17 和 Java 21 LTS 版本的支持时间是多久?

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

对于旧版 Java 运行时的淘汰策略是什么?

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

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

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

请参阅 有关 Java 在 Azure 和 Azure Stack 上的长期支持

运行我的应用程序所需的操作系统是什么?

操作系统使用最新的 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 是否支持从源生成容器?

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

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

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

Azure Spring Apps 如何监控我的应用程序的健康状况?

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

注意事项

由于这些探测,目前无法在 Azure Spring Apps 中启动应用程序,而无需公开端口 10258080

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

是的。 有关详细信息,请参阅 使用 Azure 活动日志和 Azure Service Health 监视应用生命周期事件

故障排除

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

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

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

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

后续步骤

如果存在进一步的问题,请参阅 Azure Spring Apps 故障排除指南