注意事项
基本计划和标准计划于 2025 年 3 月 17 日进入退休期。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
本文适用于:✅ 基本/标准
本文解答了有关Azure Spring Apps的常见问题。
常规
为什么Azure Spring Apps?
Azure Spring Apps为 Spring 开发人员提供平台即服务(PaaS)。 Azure Spring Apps管理应用程序基础结构,以便你可以专注于应用程序代码和业务逻辑。 内置于Azure Spring Apps的核心功能包括 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通过安全地加密所有这些数据来帮助确保只有客户有权访问应用程序数据、日志或配置。
- 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。 如果应用任何其他值,则默认值将替代指定的值,因此请避免在代码中指定服务器端口。 如果代码显式设置服务器端口而不是使用server.port,请确保端口为1025或8080,具体取决于Azure Spring Apps服务实例的定价计划。 - Azure门户、Azure 资源管理器模板和 Terraform 不支持上传应用程序包。 可以通过使用 Azure CLI、Azure DevOps、适用于 Azure Spring Apps 的 Maven 插件、适用于 IntelliJ 的 Azure Toolkit 和适用于 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,请按照 Quickstart 中的说明操作:使用 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 In-Process Agent。
服务绑定支持哪些资源类型?
目前支持三个服务:
- Azure Cosmos DB
- Azure MySQL 数据库 (Azure Database for MySQL)
- 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运行时和 OS 版本
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中启动应用程序,而无需公开端口 1025 或 8080。
我的应用程序是否会重启?何时重启?
是的。 有关详细信息,请参阅 使用 Azure 活动日志和 Azure 服务运行状况 监视应用生命周期事件。
故障排除
极少发生的服务注册表不可用情况会产生什么影响?
在某些罕见的情况下,你可能看到应用程序日志中出现类似于以下示例的错误:
RetryableEurekaHttpClient: Request execution failure with status code 401; retrying on another server if available
Spring 框架会由于网络不稳定或其他网络问题而引发此问题,但这种情况不经常出现。 用户体验不会受到任何影响。 Eureka 客户端具有心跳功能和重试策略来处理此问题。 可将此问题视为暂时性错误,可以放心忽略它。
后续步骤
如果存在进一步的问题,请参阅 Azure Spring Apps 故障排除指南。