@FunctionClient
interface LambdaClient {
@Named("checkout")
fun checkout(request: FunctionRequest): FunctionResponse
}
Invoking this method works when building using Java 21 ShadowJar and invoking it from another lambda.
Actual Behaviour
When deploying with buildNativeLambda for GraalVM Custom Runtime its throwing an exception:
context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2312)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3114)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:3016)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2977)
at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2751)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1750)
at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:89)
at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2165)
at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1328)
at io.micronaut.function.client.aws.$AWSLambdaFunctionExecutor$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2330)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2300)
at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2312)
at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3114)
at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80)
at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:3016)
at io.micronaut.context.DefaultBeanContext.initializeEagerBean(DefaultBeanContext.java:2697)
at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1995)
... 16 more
Caused by: java.lang.ExceptionInInitializerError
at com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:142)
at com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:137)
at com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:100)
at com.amazonaws.ClientConfiguration.(ClientConfiguration.java:80)
at io.micronaut.aws.sdk.v1.AWSClientConfiguration.(AWSClientConfiguration.java:36)
at io.micronaut.aws.sdk.v1.$AWSClientConfiguration$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2330)
... 73 more
Caused by: java.lang.IllegalArgumentException
at com.amazonaws.internal.config.InternalConfig.loadfrom(InternalConfig.java:260)
at com.amazonaws.internal.config.InternalConfig.load(InternalConfig.java:274)
at com.amazonaws.internal.config.InternalConfig$Factory.(InternalConfig.java:347)
... 80 more
Request loop failed with: Bean definition [io.micronaut.function.client.aws.AWSLambdaFunctionExecutor] could not be loaded: Error instantiating bean of type [io.micronaut.function.client.aws.AWSLambdaConfiguration]
Path Taken: new AWSLambdaFunctionExecutor(AWSLambdaAsync asyncClient,ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaFunctionExecutor([AWSLambdaAsync asyncClient],ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaAsyncClientFactory([AWSLambdaConfiguration configuration]) --> new AWSLambdaConfiguration([AWSClientConfiguration clientConfiguration],Environment environment)
[36m17:41:39.394[0;39m [1;30m[main][0;39m [34mINFO [0;39m [35mi.m.s.ObjectMappers$ObjectMapperContext$1[0;39m - Established active environments: [ec2, cloud, dev]
{
"errorMessage": "Bean definition [io.micronaut.function.client.aws.AWSLambdaFunctionExecutor] could not be loaded: Error instantiating bean of type [io.micronaut.function.client.aws.AWSLambdaConfiguration]\n\nPath Taken: new AWSLambdaFunctionExecutor(AWSLambdaAsync asyncClient,ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaFunctionExecutor([AWSLambdaAsync asyncClient],ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaAsyncClientFactory([AWSLambdaConfiguration configuration]) --> new AWSLambdaConfiguration([AWSClientConfiguration clientConfiguration],Environment environment)"
}
Steps To Reproduce
Invoke Lambda ClientFunction from another lambda runnon on GraalVM
Expected Behavior
implementation("io.micronaut.aws:micronaut-function-client-aws")
@FunctionClient interface LambdaClient { @Named("checkout") fun checkout(request: FunctionRequest): FunctionResponse }
Invoking this method works when building using Java 21 ShadowJar and invoking it from another lambda.
Actual Behaviour
When deploying with buildNativeLambda for GraalVM Custom Runtime its throwing an exception:
context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2312) at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3114) at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80) at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:3016) at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2977) at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2751) at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1750) at io.micronaut.context.AbstractBeanResolutionContext.getBean(AbstractBeanResolutionContext.java:89) at io.micronaut.context.AbstractInitializableBeanDefinition.resolveBean(AbstractInitializableBeanDefinition.java:2165) at io.micronaut.context.AbstractInitializableBeanDefinition.getBeanForConstructorArgument(AbstractInitializableBeanDefinition.java:1328) at io.micronaut.function.client.aws.$AWSLambdaFunctionExecutor$Definition.instantiate(Unknown Source) at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2330) at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2300) at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:2312) at io.micronaut.context.DefaultBeanContext.createRegistration(DefaultBeanContext.java:3114) at io.micronaut.context.SingletonScope.getOrCreate(SingletonScope.java:80) at io.micronaut.context.DefaultBeanContext.findOrCreateSingletonBeanRegistration(DefaultBeanContext.java:3016) at io.micronaut.context.DefaultBeanContext.initializeEagerBean(DefaultBeanContext.java:2697) at io.micronaut.context.DefaultBeanContext.initializeContext(DefaultBeanContext.java:1995) ... 16 more Caused by: java.lang.ExceptionInInitializerError at com.amazonaws.util.VersionInfoUtils.userAgent(VersionInfoUtils.java:142) at com.amazonaws.util.VersionInfoUtils.initializeUserAgent(VersionInfoUtils.java:137) at com.amazonaws.util.VersionInfoUtils.getUserAgent(VersionInfoUtils.java:100) at com.amazonaws.ClientConfiguration.(ClientConfiguration.java:80)
at io.micronaut.aws.sdk.v1.AWSClientConfiguration.(AWSClientConfiguration.java:36)
at io.micronaut.aws.sdk.v1.$AWSClientConfiguration$Definition.instantiate(Unknown Source)
at io.micronaut.context.DefaultBeanContext.resolveByBeanFactory(DefaultBeanContext.java:2330)
... 73 more
Caused by: java.lang.IllegalArgumentException
at com.amazonaws.internal.config.InternalConfig.loadfrom(InternalConfig.java:260)
at com.amazonaws.internal.config.InternalConfig.load(InternalConfig.java:274)
at com.amazonaws.internal.config.InternalConfig$Factory.(InternalConfig.java:347)
... 80 more
Request loop failed with: Bean definition [io.micronaut.function.client.aws.AWSLambdaFunctionExecutor] could not be loaded: Error instantiating bean of type [io.micronaut.function.client.aws.AWSLambdaConfiguration]
Path Taken: new AWSLambdaFunctionExecutor(AWSLambdaAsync asyncClient,ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaFunctionExecutor([AWSLambdaAsync asyncClient],ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaAsyncClientFactory([AWSLambdaConfiguration configuration]) --> new AWSLambdaConfiguration([AWSClientConfiguration clientConfiguration],Environment environment)
[36m17:41:39.394[0;39m [1;30m[main][0;39m [34mINFO [0;39m [35mi.m.s.ObjectMappers$ObjectMapperContext$1[0;39m - Established active environments: [ec2, cloud, dev]
{ "errorMessage": "Bean definition [io.micronaut.function.client.aws.AWSLambdaFunctionExecutor] could not be loaded: Error instantiating bean of type [io.micronaut.function.client.aws.AWSLambdaConfiguration]\n\nPath Taken: new AWSLambdaFunctionExecutor(AWSLambdaAsync asyncClient,ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaFunctionExecutor([AWSLambdaAsync asyncClient],ByteBufferFactory byteBufferFactory,JsonMediaTypeCodec jsonMediaTypeCodec,ExecutorService ioExecutor) --> new AWSLambdaAsyncClientFactory([AWSLambdaConfiguration configuration]) --> new AWSLambdaConfiguration([AWSClientConfiguration clientConfiguration],Environment environment)" }
Steps To Reproduce
Environment Information
AWS Lambda -> x86 64 ( GraalVM ) Custom Runtime
Example Application
No response
Version
4.3.4