如果我设置标题X-Amz-Invocation-Type:'Event',则调用是异步完成的,但如亚马逊文档所述(https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html#api-gateway-simple-proxy-for-lambda-output-format),当使用代理Lambda集成,lambda函数必须返回这样的一个好格式的响应:API网关 - Lambda代理集成和异步调用
callback(null, {"statusCode": 200, "body": "results"})
随着lambda函数异步调用,API网关从来没有得到答案,然后返回502错误网关的错误,而不是200个OK状态。
下面招摇配置的摘录:
"/myFunc": {
"post": {
"parameters": [
{
"name": "myparam",
"in": "query",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "200 response"
}
},
"x-amazon-apigateway-request-validator": "Validate query string parameters and headers",
"x-amazon-apigateway-integration": {
"responses": {
"default": {
"statusCode": "200"
}
},
"uri": "arn:aws:apigateway:ap-northeast-1:lambda:path/2015-03-31/functions/arn:aws:lambda:ap-northeast-1:idAccount:function:myFunc/invocations",
"passthroughBehavior": "when_no_match",
"httpMethod": "POST",
"type": "aws_proxy",
"requestParameters": {
"integration.request.header.X-Amz-Invocation-Type": "'Event'"
}
}
}
}
有没有办法把它的工作?
LAMBDA,本身应该回归到一个异步调用一个结构良好的反应......至少,那是什么[这里](http://docs.aws.amazon.com/apigateway/latest /developerguide/integrating-api-with-aws-services-lambda.html)似乎表明。 –
他们在本教程中未使用Lambda代理集成... 如果我不使用Lambda代理集成,但我必须使用正文模板来传递请求参数和阶段变量 – Alexandre
@Alexandre i我只是面临同样的问题。你设法解决这个问题吗? – Pawel