以下是我的Lambda处理程序,它期望来自queryStringParameters的用户数据:
export const lambdaHandler = async (event, context) => {
try {
const numberOfUsersRequested= (event && event.queryStringParameters.users) ? event.queryStringParameters.users : 10;
const users = await generateUsers(numberOfUsersRequested).then(data => data.users);
我正在使用AWS SAM开发Lambda,并且可以使用event.json作为本地此Lambda的输入事件来很好地对其进行测试。这是event.json的一部分,我在其中传递了queryStringParamters用户,如下所示:-
{
"body": "{\"message\": \"mock data\"}",
"resource": "/{proxy+}",
"path": "/path/to/resource",
"httpMethod": "POST",
"isBase64Encoded": false,
"queryStringParameters": {
"users": 200
},
现在,我是否知道如何从AWS API Gateway控制台传递相同的QueryStringParameters。目前,我在API网关的AWS控制台上收到此500错误:-
{
"message": "Internal server error"
}
Mon Sep 28 01:24:15 UTC 2020 : Endpoint response headers: {Date=Mon, 28 Sep 2020 01:24:15 GMT, Content-Type=application/json, Content-Length=2, Connection=keep-alive, x-amzn-RequestId=0e1f110c-e80c-4ff1-870a-5cafd04167db, x-amzn-Remapped-Content-Length=0, X-Amz-Executed-Version=$LATEST, X-Amzn-Trace-Id=root=1-5f713b3d-4762f9b07ee8c1d7c6623574;sampled=0}
Mon Sep 28 01:24:15 UTC 2020 : Endpoint response body before transformations: {}
Mon Sep 28 01:24:15 UTC 2020 : Execution failed due to configuration error: Output mapping refers to an invalid method response: 200
Mon Sep 28 01:24:15 UTC 2020 : Method completed with status: 500
我已执行以下步骤来缓解此问题,但无法正常工作。看起来好像缺少了一些东西:-1)在方法请求中添加了url查询字符串参数作为用户(请参见屏幕截图)
在集成请求->映射模板中,将映射添加为application / json:-
{“ users”:“ $ input.params('users')”}
您的情况event
应该是:
{
"users": "6"
}
您可以将以下内容添加到处理程序的开头进行确认:
console.log(JSON.stringify(event, null, 2));
因此,要获取users
价值,您应该只使用event.users
而不是event.queryStringParameters.users
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句