Micronaut aws lambda 本机图像抛出运行时错误 Could not find option 'MaxPermSize'

问题描述 投票:0回答:0

我已经部署了一个 micronaut lambda 原生镜像作为 AWS Lambda。但是当我进行测试时,出现以下错误

INIT_START Runtime Version: provided:al2.v16 Runtime Version ARN: arn:aws:lambda:eu-west-1::runtime:a877059c39f5d33441dc2aac00a8beba450c75fa8d69c4c71e7de2cca4659967
error: Could not find option 'MaxPermSize'. Use -XX:PrintFlags= to list all available options.
RequestId: 9db49a67-91a6-4442-a446-e6f905c20415 Error: Runtime exited with error: exit status 1
Runtime.ExitError

基本上尝试过的例子来自 https://guides.micronaut.io/latest/mn-application-aws-lambda-graalvm-gradle-java.html

我在使用通过 sdk 安装的 graalvm jvm 22.3.r11-grl 时在 Ubuntu 机器上构建了本机映像。然后将生成的 zip 文件上传为 AWS Lambda 代码。

使用以下命令构建原生镜像

./gradlew buildNativeLambda

我所做的唯一改变是我将“-XX:MaxPermSize=2048m”添加到 dockerfileNative 任务,因为我没有足够的内存来构建图像。

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

以下是构建输出的片段,它开始使用 graalvm docker 图片。

Step 1/27 : FROM amazonlinux:latest AS graalvm
 ---> ee4570b57b03
Step 2/27 : ENV LANG=en_US.UTF-8
 ---> Using cache
 ---> ab5229640881
Step 3/27 : RUN yum install -y gcc gcc-c++ libc6-dev zlib1g-dev curl bash zlib zlib-    devel zlib-static zip tar gzip
 ---> Using cache
 ---> 0b8b8090b0d2
Step 4/27 : RUN curl -4 -L https://github.com/graalvm/graalvm-ce-    builds/releases/download/vm-22.3.0/graalvm-ce-java11-linux-amd64-22.3.0.tar.gz -o     /tmp/graalvm-ce-java11-linux-amd64-22.3.0.tar.gz
 ---> Using cache
 ---> a0056de925cc
Step 5/27 : RUN tar -zxf /tmp/graalvm-ce-java11-linux-amd64-22.3.0.tar.gz -C /tmp && mv /tmp/graalvm-ce-java11-22.3.0 /usr/lib/graalvm
 ---> Using cache
 ---> 7b50cdea62fd
Step 6/27 : RUN rm -rf /tmp/*
 ---> Using cache
 ---> 232bc6614199
Step 7/27 : RUN /usr/lib/graalvm/bin/gu install native-image
 ---> Using cache
 ---> 0ce1b965d4a2
Step 8/27 : CMD ["/usr/lib/graalvm/bin/native-image"]
 ---> Using cache
 ---> 8c6372d00800
Step 9/27 : ENV PATH=/usr/lib/graalvm/bin:${PATH}
 ---> Using cache
 ---> e062c02ff7e8
Step 10/27 : FROM graalvm AS builder
 ---> e062c02ff7e8
Step 11/27 : WORKDIR /home/app
 ---> Using cache
 ---> 8f3313de18d7
Step 12/27 : COPY layers/libs /home/app/libs

在 Lambda 中,我还添加了 env var 作为

JAVA_TOOLS_OPTIONS   -XX:MaxPermSize=2048m

但是这个连续抛出同样的错误。有人可以帮忙吗?

aws-lambda native micronaut graalvm
© www.soinside.com 2019 - 2024. All rights reserved.