首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随机状态代码:连接到lambda的AWS api网关上的502个错误

随机状态代码:连接到lambda的AWS api网关上的502个错误
EN

Stack Overflow用户
提问于 2018-01-05 10:30:43
回答 1查看 4.6K关注 0票数 21

我使用代理集成使用api网关公开了多个lambda。有时,我会收到状态代码502的奇怪错误。蓝光云表里什么都没有。下面我发布了用于示例请求的api网关日志:

代码语言:javascript
复制
(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

基本上,api网关似乎无法到达lambda,对lambda的调用正在返回:

代码语言:javascript
复制
(0cbbd9f5-f1bd-11e7-92c0-4d5d3b7d0380) Endpoint response body before transformations:
{
    "Message": "An error occurred and the request cannot be processed.",
    "Type": "Service"
}

还有其他人经历过这些问题吗?唯一可能的解决方法是编写重试机制,但从我这方面看,我似乎遗漏了一些配置,或者是AWS故障,应该由它们来处理。

EN

回答 1

Stack Overflow用户

发布于 2018-05-14 06:31:15

我在这里列出一个可能的原因..。

当AWS被配置为在VPC中运行时。它从VPC中每次执行一个IP。

如果VPC没有太多的免费if,那么您的lambda就会默默地失败:

我个人面临的问题涉及到有限的IP,增加IP解决了这个问题。

以下文本来自链接

您指定的子网应该有足够的可用IP地址来匹配ENIs的数量。 我们还建议您在Lambda函数配置中的每个可用性区域中指定至少一个子网。通过在每个可用性区域中指定子网,您的Lambda函数可以在另一个可用性区域中运行,如果其中一个地址下降或耗尽了IP地址。 备注 如果您的VPC没有足够的ENIs或子网IP,那么您的Lambda函数将不会随着请求的增加而扩展,您将看到功能故障的增加。AWS目前不会将由于ENIs或IP地址不足而导致的错误记录到CloudWatch日志。如果您看到错误增加而没有相应的CloudWatch日志,则可以同步调用Lambda函数以获得错误响应(例如,在AWS控制台中测试Lambda函数,因为控制台同步调用Lambda函数并显示错误)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48111689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档