Aws lambda 带有代理can的Micronaut Lambda';t从json正文io.micronaut.web.router.exceptions.UnsatifiedLoteException中解组对象

Aws lambda 带有代理can的Micronaut Lambda';t从json正文io.micronaut.web.router.exceptions.UnsatifiedLoteException中解组对象,aws-lambda,aws-api-gateway,micronaut,micronaut-aws,Aws Lambda,Aws Api Gateway,Micronaut,Micronaut Aws,在具有代理集成的Micronaut Lambda中,我有一个控制器,该控制器应将JSON内容解组到Ping对象中: @Controller("/ping") class PingController { private val logger = LoggerFactory.getLogger(javaClass) @Get("/") fun getPing(@Header("Host") host: String): Ping { logger.inf

在具有代理集成的Micronaut Lambda中,我有一个控制器,该控制器应将JSON内容解组到Ping对象中:

@Controller("/ping")
class PingController {

    private val logger = LoggerFactory.getLogger(javaClass)

    @Get("/")
    fun getPing(@Header("Host") host: String): Ping {
        logger.info("Host Header {}", host)
        return Ping("myPing")
    }

    @Post("/")
    @Status(HttpStatus.CREATED)
    fun createPing(@Body ping: Ping): Ping {
        logger.info("ping {}", ping)
        return ping
    }
}
如果我作为本地micronaut webapp启动此应用程序,我可以成功执行此操作:

curl -X POST localhost:8080/ping -d '{"value": "myvalue"}' -H "Content-type: application/json"
日志信息:

INFO  m.aws.api2.poc.PingController - ping Ping(value=myvalue)
但是,当从AWS API管理器调用此控制器方法时,传递内容类型头和正文信息

。。。它失败了:


14:56:18
io.micronaut.web.router.exceptions.UnsatisfiedRouteException: Required argument [Ping ping] not specified

14:56:18
at io.micronaut.web.router.AbstractRouteMatch.execute(AbstractRouteMatch.java:279)

14:56:18
at io.micronaut.web.router.RouteMatch.execute(RouteMatch.java:122)

14:56:18
at io.micronaut.function.aws.proxy.MicronautLambdaContainerHandler.lambda$null$1(MicronautLambdaContainerHandler.java:240)

14:56:18
at io.reactivex.internal.operators.flowable.FlowableDefer.subscribeActual(FlowableDefer.java:35)

14:56:18
at io.reactivex.Flowable.subscribe(Flowable.java:14805)

14:56:18
at io.reactivex.Flowable.subscribe(Flowable.java:14752)

14:56:18
at io.micronaut.reactive.rxjava2.RxInstrumentedFlowable.subscribeActual(RxInstrumentedFlowable.java:68) 
奇怪的是,
@Get
调用中的
Ping
对象的编组既可以用作webapp,也可以用作lambda


我在Github中上传了一个示例项目:

micronaut函数aws api proxylib中有一个bug,我报告了它(),并立即在
io.micronaut.aws:micronaut函数aws api proxy:1.1.0.RC1中修复