0

我创建了一个示例AWS lambda函数并将此函数与AWS API集成。无法从AWS API请求中访问aws lambda函数中的字符串值

我已经写了一个post方法在API和选择的应用程序/ JSON的请求集成映射如下。

{ 
    'songTitle':"$input.params('songTitle')" 
} 

songTitle作为参数(应用程序/ JSON)发送到API的请求。

但是我收到$ input.params()为空。

因为我对此很陌生,我不知道什么是正确的方法。

请指导来访问这些PARAMS

+0

只要传入'{ 'songTitle':'一些随机歌曲标题' }' 并且您应该可以通过调用'event.songTitle'获得歌曲标题 –

+0

@DylanLaw我也一样。 event.songTitle返回空。 – Spartan

+0

也许你可以告诉我们你的lambda函数以及你如何调用lambda函数? –

回答

0

我不知道如果这是你的问题,但单引号是不一样的JSON双引号。映射模板中任何未用$字符转义的内容都会按原样写入实际有效内容中。

应该是:

{ 
    "songTitle":"$input.params('songTitle')" 
} 

编辑:如果不按请求的应用程序/ JSON发送Content-Type头的工作,还请测试。如果你根本不发送Content-Type,它应该默认为application/json映射模板。

+0

我找到解决方案,但今天在这里发布。当我们从请求的正文部分读取值时,我们应该使用不同的语法。使用$ input.path('$ .key_from_request_body'); – Spartan

0

在读取从请求报头部分的输入参数(请求集成映射) 语法情况下:

{ 
    'songTitle':"$input.params('songTitle')" 
} 

如果我们想读取请求主体部分的参数,我们应该写为

{ 
    'songTitle':"$input.path('$.songTitle')"`enter code here` 
}