我在Method Request passthrough
下选择了method integration
作为通用模板。
"context" : {
"account-id" : "$context.identity.accountId",
"api-id" : "$context.apiId",
"api-key" : "$context.identity.apiKey",
"authorizer-principal-id" : "$context.authorizer.principalId",
"caller" : "$context.identity.caller",
"cognito-authentication-provider" : "$context.identity.cognitoAuthenticationProvider",
"cognito-authentication-type" : "$context.identity.cognitoAuthenticationType",
"cognito-identity-id" : "$context.identity.cognitoIdentityId",
"cognito-identity-pool-id" : "$context.identity.cognitoIdentityPoolId",
"httpmethod" : "$context.httpMethod",
我不得不从httpmethod中拿出破折号让lambda看到它(我也必须改变body-json
)。但是,如果我使用API网关控制台测试程序进行测试,它会使用破折号和全部显示值。
所以lambda内联代码如下所示:
method: event.context.httpmethod,
}
})
};
return response;
1.值得在API网关上使用Lambda proxy integration
。
2.通过Lambda代理集成,当客户端提交API请求时,API网关将原始请求按原样传递给集成的Lambda函数。此请求数据包括请求标头,查询字符串参数,URL路径变量,有效负载和API配置数据。配置数据可以包括当前部署阶段名称,阶段变量,用户身份或授权上下文(如果有)。后端Lambda函数解析传入的请求数据以确定它返回的响应。 3. aws lambda proxy integration
希望有所帮助