Paw*_*wel 20 amazon-web-services aws-lambda aws-api-gateway
我使用代理集成使用api网关暴露了多个lambdas.我不时会收到状态代码为502的奇怪错误.在lambda云监视日志中没有任何内容.下面我发布了api网关日志以获取示例请求:
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Received response. Integration latency: 231 ms
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Endpoint response body before transformations:
{
"Message": "An error occurred and the request cannot be processed.",
"Type": "Service"
}
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Endpoint response headers:
{
Connection=keep-alive,
x-amzn-RequestId=0cbc9dee-f1bd-11e7-857b-91f7f814692c,
x-amzn-ErrorType=ServiceException,
Content-Length=86,
Date=Fri, 05 Jan 2018 02:06:32 GMT,
Content-Type=application/json
}
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Execution failed due to configuration error: Malformed Lambda proxy response
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Method completed with status: 502
Run Code Online (Sandbox Code Playgroud)
基本上似乎api网关无法到达lambda并且调用lambda返回:
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Endpoint response body before transformations:
{
"Message": "An error occurred and the request cannot be processed.",
"Type": "Service"
}
Run Code Online (Sandbox Code Playgroud)
还有其他人遇到过这些问题吗?只有我可以解决的问题是编写重试机制,但从我的角度来看,我认为我错过了一些配置,或者是他们应该处理的AWS故障.
我在这里列出一个可能的原因......
将AWS Lambda配置为在VPC中运行时.从VPC每次执行需要一个IP.
如果VPC没有太多的免费IP,那么你的lambda将无声地失败:(
我个人面临有限的IP问题,增加IP解决了这个问题.
以下文字来自此链接
您指定的子网应具有足够的可用IP地址以匹配ENI的数量.
我们还建议您在Lambda函数配置中的每个可用区中至少指定一个子网.通过在每个可用区中指定子网,您的Lambda函数可以在另一个可用区中运行,如果其中一个发生故障或用完IP地址.
注意
如果您的VPC没有足够的ENI或子网IP,您的Lambda函数将不会随着请求的增加而扩展,并且您将看到功能故障的增加.AWS Lambda当前不会将由ENI或IP地址不足引起的错误记录到CloudWatch Logs.如果您看到没有相应CloudWatch Logs的错误增加,您可以同步调用Lambda函数以获取错误响应(例如,在AWS Lambda控制台中测试您的Lambda函数,因为控制台同步调用Lambda函数并显示错误).
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |