如何防止重複的 Lambda 函數叫用?

上次更新日期:2021 年 11 月 18 日

我的 AWS Lambda 函數不斷接收單一事件的多個叫用請求。如何防止我的 Lambda 函數從同一事件中多次叫用?

簡短描述

為了協助防止重複的 Lambda 函數叫用,請根據您正在使用的叫用類型執行以下操作。

注意:對於同步叫用,由叫用 Lambda 函數的用户端和 AWS 服務負責執行重試。對於非同步叫用,Lambda 會在發生錯誤時自動重試,且在重試之間存在延遲。

解決方案

對於非同步叫用

檢閱您的 Lambda 函數的 Amazon CloudWatch Logs,以驗證以下項目:

  • 重複的叫用是否具有相同的請求 ID
  • 重複的叫用是否傳回錯誤或逾時

然後,根據您的使用案例執行以下操作之一:

對於傳回錯誤或逾時且具有相同請求 ID 的重複叫用

注意:傳回錯誤或逾時且具有相同請求 ID 的重複叫用,表示是 Lambda 服務重試了該函數。

設定非同步叫用的錯誤處理以減少 Lambda 函數重試失敗的非同步叫用請求的次數。

如需詳細資訊,請參閲 AWS Lambda 中的錯誤處理和自動重試

對於未傳回錯誤或逾時的重複叫用

注意:未傳回錯誤或逾時的重複叫用,表示是用户端重試。

對於同步叫用

注意:同步叫用重試行為因 AWS 服務而異,具體取決於每個服務的事件來源映射。如需詳細資訊,請參閲事件驅動的叫用