如何對 Lambda 同步叫用問題進行疑難排解?

上次更新日期:2022 年 10 月 14 日

我設定了一個 AWS Lambda 函數來同步叫用,但是目的地沒有啟動。我要如何修正此問題?

我透過 Lambda 主控台叫用 Lambda 函數時,它是被同步或非同步叫用?

-或-

為什麼我的 Lambda 函數在我將其設為重試一、兩次後沒有重試?

解決方案

當您同步叫用 Lambda 函數但失敗,可能的原因如下:

  • Lambda 沒有執行程式碼中動作的許可。
  • 叫用 Lambda 函數的 AWS 服務沒有足夠的許可。
  • Lambda 是非同步叫用。
  • Lambda 僅支援非同步叫用和串流叫用的目的地,而不支援同步叫用。

請依照下列步驟,對同步叫用問題進行疑難排解:

1.    判定 Lambda 函數如何叫用。函數是否使用 AWS CLI 叫用? 函數是否透過 AWS 服務叫用?

2.    檢查 AWS 服務是以同步或非同步方式叫用 Lambda 函數

3.    使用下列命令同步叫用 Lambda 函數:

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

查看是否傳回 200 狀態碼,或者命令是否傳回錯誤。

4.    請記得,Lambda 函數重試行為是由用戶端在同步叫用中控制。AWS Lambda 主控台的重試嘗試次數設定,僅限於非同步叫用。請確認用戶端有重試請求,而不是檢查 Lambda 日誌。

5.    請記得,Lambda 主控台中叫用的 Lambda 函數永遠是同步叫用。

6.    同步叫用重試行為因 AWS 服務而異,具體取決於每個服務的事件來源映射

如需詳細資訊,請參閲事件驅動的叫用

7.    確保 Lambda 函數的程式碼為等冪,並且能夠多次處理相同訊息。

8.    辨識並解決您的 Lambda 函數傳回的任何錯誤

如需更多資訊,請參閲如何對 Lambda 函數故障進行疑難排解?

9.    如果仍然無法解決問題,請在 AWS Support 建立案例。在您的案例中提供下列資訊:

  • Lambda 函數的 ARN。
  • Lambda 函數設定上的工作流程,包括所有內含服務。
  • 有關問題是間歇性或連續性發生的詳細資訊。
  • 完整的 .txt 格式 CloudWatch 日誌,從問題發生開始。這些 CloudWatch 日誌用於識別 Lambda 函數錯誤,包括逾時問題、初始化持續時間和許可問題。
  • 問題的確切時間戳記,帶有時區或 UTC 時間戳記。

注意:由於安全和隱私權因素,AWS Support 代表無法存取客戶的 CloudWatch 日誌。


此文章是否有幫助?


您是否需要帳單或技術支援?