【问题标题】:Handling AWS lambda retries处理 AWS lambda 重试
【发布时间】:2019-03-02 06:07:05
【问题描述】:

我正在尝试通过循环异步调用数百个 lambda 函数。当我这样做时,几乎所有这些都会重试,即使代码似乎没有问题。当我尝试同步调用它们时,它们都运行良好并返回状态码200

here提到的原因,我只发现可能是以下原因:

函数遇到资源限制,例如内存不足 错误或其他超时。

如何找到导致重试的确切原因以及如何避免重试?

【问题讨论】:

  • CloudWatch Logs 是否显示它们超时或失败?
  • 他们确实超时了,原因是 lambda fn 发出一个 HTTP 请求,当然不能同时处理数百个这样的请求..

标签: python-3.x amazon-web-services aws-lambda boto3 serverless


【解决方案1】:

调用 lambda,如果它返回 200,您还将收到每次调用的唯一请求 ID。

x-amzn-RequestId

在响应标头中为您提供唯一的 requestid,并有助于跟踪日志。

您可以使用apilogs 查询 cloudwatch 日志。

apilogs get --api-id xyz123 --stage prod --start='1h ago' | grep "6605b081-6f04-11e6-97ac-c34deb0b3dd9"

有关请求 ID 和 apilog 的更多详细信息记录在 here

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2020-05-31
    • 1970-01-01
    • 2017-09-02
    • 2021-08-21
    • 2015-07-31
    • 2021-01-10
    • 2019-07-02
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多