1

我正在尝试使用由paketobuildpacks/builder使用 spring-native + spring-cloud-function-aws 构建的 Docker 映像运行 AWS Lambda,但它不处理传入值,只是启动并返回错误,我错过了什么吗?

日志输出:

START RequestId: f7a451f1-f43b-4ba0-be3d-58526bfa0d10 Version: $LATEST
2021-06-30 00:20:58.229  INFO 8 --- [           main] o.s.nativex.NativeListener               : This application is bootstrapped with code generated with Spring AOT

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.1)

2021-06-30 00:20:58.251  INFO 8 --- [           main] o.s.boot.SpringApplication               : Starting application using Java 11.0.11 on 169.254.41.117 with PID 8 (started by sbx_user1051 in /workspace)
2021-06-30 00:20:58.251  INFO 8 --- [           main] o.s.boot.SpringApplication               : No active profile set, falling back to default profiles: default
2021-06-30 00:20:58.551  INFO 8 --- [           main] o.s.boot.SpringApplication               : Started application in 0.42 seconds (JVM running for 0.421)
END RequestId: f7a451f1-f43b-4ba0-be3d-58526bfa0d10
REPORT RequestId: f7a451f1-f43b-4ba0-be3d-58526bfa0d10  Duration: 840.41 ms Billed Duration: 841 ms Memory Size: 128 MB Max Memory Used: 29 MB  
RequestId: f7a451f1-f43b-4ba0-be3d-58526bfa0d10 Error: Runtime exited without providing a reason
Runtime.ExitError

在下面找到我的配置:

Gradle 插件:

kotlin("jvm")
kotlin("plugin.spring")
id("io.spring.dependency-management")
id("org.springframework.boot")
id("org.springframework.experimental.aot")
id("org.graalvm.buildtools.native")

依赖项:

implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.springframework.cloud:spring-cloud-function-adapter-aws")
implementation("com.amazonaws:aws-lambda-java-events:2.0.2")
implementation("com.amazonaws:aws-lambda-java-core:1.1.0")

GraalVM 插件配置:

tasks.withType<BootBuildImage> {
    builder = "paketobuildpacks/builder:tiny"
    environment = mapOf("BP_NATIVE_IMAGE" to "true")
}

应用来源:

@SpringBootApplication
class LinkGeneratorApplication: ApplicationContextInitializer<GenericApplicationContext>  {
    override fun initialize(applicationContext: GenericApplicationContext) {
        applicationContext.registerBean(
            "function",
            FunctionRegistration::class.java,
            {
                FunctionRegistration(Function<Input, Result> { Result("Here") })
                    .type(
                        FunctionType
                            .from(Input::class.java)
                            .to(Result::class.java)
                            .type
                    )
            }
        )
    }

}

data class Input(val sellerId: String, val ownerId: String, val market: String)
data class Result(val message: String)

fun main(args: Array<String>) {
    runApplication<LinkGeneratorApplication>(*args)
}
4

0 回答 0