簡體   English   中英

AWS Lambda,超時重試,Python SDK

[英]AWS Lambda, retries on timeout, Python SDK

我試圖通過 Python ZF20E3C5E54C0AB3D37AZ5D66036異步方式調用 Lambda function 筆記本。 我發送的事件需要超過最大可能超時限制(15 分鍾)才能完成。

我注意到有時(並非總是)在超時錯誤時將事件重新發送到 lambda。 這種情況一直持續下去,直到我通過將 lambda 的並發設置為 0 來關閉它。如果我降低超時限制(例如 10 分鍾),這永遠不會發生,這意味着事件永遠不會被重新發送,只有一次調用在日志中,只有一個錯誤,之后沒有任何活動。

到底是怎么回事? 我如何合理化這些觀察?

嘗試查看step functions ,通過這樣做您可以控制 Lambda 的重試邏輯並將其標記為失敗。

IF your Lambda function is taking 15 minutes, determine whether you can break it down into smaller Lambda functions and invoke each of these in turn in your Lambda function.

我建議您打開 DEBUG 級別的調試並在您看到 CloudWatch 日志多次執行時檢查它。 我有時會看到這種情況,當我這樣做時,我通常會看到來自 SDK 代碼本身的日志條目,告訴我它有一些正在執行的內置重試邏輯。 如果調用 lambda 的調用沒有得到正確的響應,它可能會再次重試調用——但服務可能接收到原始請求並執行它,但響應出現問題,所以調用者重新在

查看此鏈接的內容: https://aws.amazon.com/premiumsupport/knowledge-center/lambda-function-retry-timeout-sdk/

注意:當網絡連接出現問題時,API 調用可能需要比預期更長的時間。 網絡問題也可能導致重試和重復的 API 請求。 要為這些事件做好准備, 您的 Lambda function 必須始終是冪等的。

如果您使用 AWS SDK 進行 API 調用並且調用失敗,則 SDK 會自動重試調用。 SDK 重試的時間和次數取決於每個 SDK 的不同設置。

該文章提供了有關故障排除或更改配置設置的提示。

另請參閱https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM