你当前正在访问 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 企业计划使用 Tanzu Buildpacks 将应用程序源代码转换为映像。 有关详细信息,请参阅 Tanzu Buildpacks

使用 Azure CLI 在 Azure Spring Apps 中部署应用时,会在 Azure CLI 控制台中看到生成日志。 如果生成失败,Azure Spring Apps 会在 CLI 控制台中显示退出代码和错误消息,指示生成包执行在生成包生命周期的不同阶段失败的原因。

以下列表描述某些常见的退出代码:

  • 20 - 所有生成包组都未检测到。

    请考虑退出代码为 20 的以下可能原因:

    • 所使用的生成器不支持项目使用的语言。

      如果使用默认生成器,请检查默认生成器支持的语言。 有关详细信息,请参阅如何配置 APM 集成和 CA 证书支持的 APM 类型部分。

      如果使用自定义生成器,请检查自定义生成器的生成包是否支持项目使用的语言。

    • 你在针对错误的路径运行,例如 Maven 项目的 pom.xml 文件不在根路径中。

      设置 BP_MAVEN_POM_FILE 以指定项目的 pom.xml 文件的位置。

    • 应用程序出现问题,例如,.jar 文件没有一个包含 Main-Class 条目的 /META-INF/MANIFEST.MF 文件。

  • 51 - 生成包生成错误。

    请考虑退出代码为 51 的以下可能原因:

    • 如果 Azure Spring Apps 在 Azure CLI 控制台中显示错误消息“Build failed in stage build with reason OOMKilled”,则表示生成因内存不足而失败。

      使用以下命令通过 build-memory 环境变量增加内存:

      az spring app deploy \
          --resource-group <your-resource-group-name> \
          --service <your-Azure-Spring-Apps-name> \
          --name <your-app-name> \
          --build-memory 3Gi
      
    • 由于应用程序源代码错误(例如源代码中存在编译错误),生成失败。

      检查生成日志以查找根本原因。

    • 由于下载依赖项错误(例如网络问题导致 Maven 依赖项下载失败),生成失败。

    • 由于不支持 JDK 版本,生成失败。 例如,JAR 文件是使用生成包不支持的非 Java LTS 版本编译的。 有关支持的版本,请参阅如何在 Azure Spring Apps 企业计划中部署多语言应用部署 Java 应用程序部分。

  • 62 - 无法将映像写入 Azure 容器注册表。

    请考虑退出代码为 62 的以下可能原因:

    • 如果 Azure Spring Apps 在生成日志中显示错误消息“Failed to write image to the following tags”,则表示生成因网络问题而失败。

      通过重试来修复问题。

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

后续步骤