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

排查 Azure Spring Apps 中常见的生成问题

注意

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

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

本文介绍如何排查 Azure Spring Apps 部署的生成问题。

生成退出代码

Azure Spring Apps 企业计划使用 Tanzu Buildpacks 将应用程序源代码转换为映像。 有关详细信息,请参阅 Tanzu Buildpacks

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

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

  • 20 - 未能检测到所有 Buildpack 组。

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

    • 你正在使用的生成器不支持项目使用的语言。

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

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

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

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

    • 应用程序有问题;例如,.jar 文件没有 /META-INF/MANIFEST 文件,后者包含 Main-Class 条目。

  • 51 - Buildpack 生成错误。

    请考虑以下可能导致出退出代码 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 静态文件”“常见生成和部署错误”部分。

Next steps