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

排查 Azure Spring Apps 中常见的退出代码问题

注意

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

本文适用于:✅企业计划 ✅ 基本计划/标准计划

本文介绍当 Azure Spring Apps 中的应用程序退出并出现错误代码时可执行的故障排除操作。 如果应用程序部署失败,或者应用程序在运行时退出,则可能会收到错误代码。

退出代码

退出代码指示应用程序终止的原因。 以下列表描述某些常见的退出代码:

  • 0 - 应用程序已退出,因为它已运行到完成。 更新服务器应用程序,以便它持续运行。

    Azure Spring Apps 中部署的 Azure 应用应持续提供服务。 退出代码 0 指示应用程序未连续运行。 检查日志和源代码。

  • 1 - 如果应用程序使用非零退出代码退出,请调试代码和相关服务,然后再次部署应用程序。

    请考虑以下可能导致出现非零退出代码的原因:

    • Spring Boot 配置有问题。

      例如,需要一个 spring.db.url 参数才能连接到数据库,但在配置文件中找不到该参数。

    • 你已断开与第三方服务的连接。

      例如,你需要连接到 Redis 服务,但该服务不起作用或不可用。

    • 你对第三方服务没有足够的访问权限。

      例如,你需要连接到 Azure Key Vault 才能在应用程序中导入证书,但应用程序没有访问证书所需的权限。

    • 如果你的应用程序是由 Web 服务器提供服务的静态文件或动态前端应用程序,请参阅“部署 Web 静态文件”“常见生成和部署错误”部分。

  • 137 - 应用程序立即由托管平台终止,且没有宽限期。 此退出代码可能是由以下某种情况导致:

    • 当运行情况检查失败时,托管平台会在尝试终止应用程序并等待宽限期结束后立即终止该应用程序。 请确保应用程序正确处理正常关闭。

    • 由于内存不足错误,应用程序退出。 应用程序请求托管平台无法提供的资源。 请更新应用程序的 Java 虚拟机 (JVM) 参数以限制资源使用量或纵向扩展应用程序资源。

      如果应用程序是 Java 应用程序,请检查 JVM 参数值。 它们可能超出应用程序的内存限制。

      例如,假设将 JVM 参数设置为 Xmx 10 GB,但应用程序使用高达 5 GB 的内存。 Xmx减小值或增加应用程序内存,以确保参数的值Xmx小于或等于应用程序的内存限制。

  • 143 - 应用程序因内存不足错误或其他错误而未能响应运行状况检查而退出。

    此错误代码通常是因内存不足错误而生成的。 有关详细信息,请参阅内存不足问题引起的应用重启问题

    还可以使用 Azure CLI az spring app logs 命令从应用程序日志获取详细信息。 有关详细信息,请参阅实时流式传输 Azure Spring Apps 应用程序控制台日志

后续步骤