AWS Lambda,超时重试,Python SDK
AWS Lambda, retries on timeout, Python SDK
我试图通过 Python SDK 在 Jupyter notebook 中以 同步 方式调用 Lambda 函数。我发送的事件需要超过最大可能超时限制(15 分钟)才能完成。
我注意到事件有时(不总是)在超时错误时被重新发送到 lambda。这一直持续下去,直到我通过将其并发设置为 0 来关闭 lambda。如果我降低超时限制(例如 10 分钟),这永远不会发生,这意味着,事件永远不会被重新发送,只有一次调用在日志中,只有一个错误,之后没有 activity。
这是怎么回事?我如何合理化这些观察结果?
尝试查看 step functions,通过这样做您可以控制 Lambda 的重试逻辑并将其标记为失败。
如果您的 Lambda 函数需要 15 分钟,请确定您是否可以将其分解为更小的 Lambda 函数并在您的 Lambda 函数中依次调用每个函数。
我建议打开 DEBUG 级别调试并在您看到它被多次执行时检查 CloudWatch 日志。我有时会看到这种情况,当我这样做时,我通常会看到来自 SDK 代码本身的日志条目,告诉我它有一些正在执行的内置重试逻辑。如果调用 lambda 的调用没有得到正确的响应,它可能会再次重试调用——但服务可能收到了原始请求并执行了它,但响应出现了问题,因此调用者重新 -在
看看这个link说了什么:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-retry-timeout-sdk/
Note: API calls can take longer than expected when network connection
issues occur. Network issues can also cause retries and duplicated API
requests. To prepare for these occurrences, your Lambda function must
always be idempotent.
If you make an API call using an AWS SDK and the call fails, the SDK
automatically retries the call. How long and how many times the SDK
retries is determined by settings that vary among each SDK.
该文章提供了故障排除或更改配置设置的提示。
另见 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html
我试图通过 Python SDK 在 Jupyter notebook 中以 同步 方式调用 Lambda 函数。我发送的事件需要超过最大可能超时限制(15 分钟)才能完成。
我注意到事件有时(不总是)在超时错误时被重新发送到 lambda。这一直持续下去,直到我通过将其并发设置为 0 来关闭 lambda。如果我降低超时限制(例如 10 分钟),这永远不会发生,这意味着,事件永远不会被重新发送,只有一次调用在日志中,只有一个错误,之后没有 activity。
这是怎么回事?我如何合理化这些观察结果?
尝试查看 step functions,通过这样做您可以控制 Lambda 的重试逻辑并将其标记为失败。
如果您的 Lambda 函数需要 15 分钟,请确定您是否可以将其分解为更小的 Lambda 函数并在您的 Lambda 函数中依次调用每个函数。
我建议打开 DEBUG 级别调试并在您看到它被多次执行时检查 CloudWatch 日志。我有时会看到这种情况,当我这样做时,我通常会看到来自 SDK 代码本身的日志条目,告诉我它有一些正在执行的内置重试逻辑。如果调用 lambda 的调用没有得到正确的响应,它可能会再次重试调用——但服务可能收到了原始请求并执行了它,但响应出现了问题,因此调用者重新 -在
看看这个link说了什么:https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-retry-timeout-sdk/
Note: API calls can take longer than expected when network connection issues occur. Network issues can also cause retries and duplicated API requests. To prepare for these occurrences, your Lambda function must always be idempotent.
If you make an API call using an AWS SDK and the call fails, the SDK automatically retries the call. How long and how many times the SDK retries is determined by settings that vary among each SDK.
该文章提供了故障排除或更改配置设置的提示。
另见 https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html