你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
排查 Azure Spring Apps 中常见的生成问题
注意
基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告。
标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用。
本文适用于: ❎ 基本计划/标准计划 ✅ 企业计划
本文介绍如何排查 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 静态文件”的“常见生成和部署错误”部分。