跳至內容

如何對 Lambda@Edge 函式在 CloudFront 中造成的 502 和 503 錯誤進行疑難排解?

1 分的閱讀內容
0

我想對關聯 AWS Lambda@Edge 函式與 Amazon CloudFront 發佈項目時所遇到的 502 和 503 錯誤進行疑難排解。

解決方法

Lambda@Edge 函式傳回 502 錯誤

當 Lambda@Edge 函式傳回格式錯誤的回應,或回應內容無效時,就會發生「502」錯誤。回應的物件結構必須符合 Lambda@Edge 事件結構

若要解決「502」錯誤,請執行下列動作:

  • 驗證 Lambda@Edge 函式是否傳回有效的 JSON 物件。
  • 確保回應包含依事件類型所需的所有欄位。
  • 驗證回應中的物件是否有效,並符合預期的結構。
  • 檢查邊緣函式是否新增了不允許的 HTTP 標頭
  • 移除唯讀標頭
  • 確保 Lambda@Edge 函式未超過請求主體大小,來源請求事件為 1 MB,檢視者請求事件為 40 KB。
  • 檢查回應欄位中是否有無效的字元或值。

如需更多資訊,請參閱測試與偵錯 Lambda@Edge 函式Lambda@Edge 限制

Lambda@Edge 函式傳回 503 錯誤

當函式程式碼中出現未處理的例外狀況或錯誤時,就會發生「503」錯誤。

若要解決此問題,請在 Lambda@Edge 函式中加入記錄陳述式 (例如 console.log())),以將資料寫入 Amazon CloudWatch Logs。 查看 CloudFront 執行函式 AWS 區域中的 CloudWatch 日誌

如需更多資訊,請參閱在 AWS 上偵錯內容傳遞的四個步驟Lambda 執行問題疑難排解

當超過 Lambda@Edge 配額時,Lambda 會阻止函式執行。檢查 Lambda@Edge CloudWatch 指標以找出問題,例如各 AWS 區域的同時執行數超過限制或函式數量超過限制。

AWS 官方已更新 9 個月前