You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Micronaut AWS Lambda原生镜像运行报错:找不到'MaxPermSize'选项

解决AWS Lambda运行Micronaut原生镜像时的MaxPermSize错误

核心问题原因

-XX:MaxPermSize是Java 8及更早版本的专属参数,Java 9+(包括你使用的GraalVM Java 11)已经移除了PermGen内存区域,改用Metaspace。这个无效参数会直接导致Lambda启动失败。

修复步骤

1. 移除Lambda环境变量中的无效配置

删除AWS Lambda配置里的JAVA_TOOLS_OPTIONS -XX:MaxPermSize=2048m环境变量。原生镜像运行时是编译后的二进制程序,不需要任何JVM相关启动参数,该变量会干扰Lambda正常启动。

2. 修改Gradle构建配置,替换内存参数

编辑你的Gradle配置,删除dockerfileNative任务中的"-XX:MaxPermSize=2048m",替换为Java 11+兼容的Metaspace参数:

tasks.named("dockerfileNative") {
    args(
        "-XX:MaxMetaspaceSize=2048m",
        "-XX:MaximumHeapSizePercent=80",
        "-Dio.netty.allocator.numDirectArenas=0",
        "-Dio.netty.noPreferDirect=true"
    )
}

3. 重新构建并部署

执行以下命令重新构建原生Lambda包:

./gradlew clean buildNativeLambda

将新构建的包重新部署到AWS Lambda即可。

内容的提问来源于stack exchange,提问作者Arif Shaikh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:07:51