張貼日期: Nov 25, 2019

AWS Lambda 現在支援可處理 Kinesis 和 DynamoDB 串流的四項失敗處理功能:Bisect on Function Error、Maximum Record Age、Maximum Retry Attempts 和 Destination on Failure。藉助這些新功能,您可以自訂對資料處理失敗的回應,並建置更具彈性的串流處理應用程式。

Lambda 批次處理來自 KinesisDynamoDB 串流的資料記錄。 之前,當函式傳回錯誤時,Lambda 會停止處理受影響分區中的任何資料,然後重試整批記錄。這些記錄會被持續重試,直至 Lambda 將其成功處理,或事件來源將其處理為到期。

Bisect on Function Error
啟用 Bisect on Function Error 後,Lambda 在函式傳回錯誤時將受影響批次記錄分為兩部分,並分別重試。這讓您可以輕鬆地將格式錯誤的資料記錄與批次處理的其餘部分離,並成功處理其餘的資料記錄。

Maximum Record Age
當 Lambda 函式達到其最大記錄存留期時 (可設定為 60 秒至 7 天),可以略過處理資料記錄。

Maximum Retry Attempts
當 Lambda 函式達到最大重試次數時 (可設定為 0 至 10,000),可以略過重試批次記錄。 

Destination on Failure
現在,即使 Lambda 函式傳回錯誤,仍可繼續處理分區。當資料記錄達到最大重試次數或最大記錄存留期時,可將分區 ID 和串流 ARN 之類的中繼資料傳送至這兩個目的地之一︰SQS 佇列或 SNS 主題。

您可以透過 AWS 管理主控台、AWS CLI、AWS CloudFormation 或 AWS SDK for Lambda 開始使用這些功能。在所有提供 AWS Lambda 的區域皆可免費使用這些功能。如需 AWS Lambda 適用區域的相關詳細資訊,請參閱 AWS 區域表。若要進一步了解,請參閱 AWS Lambda 開發人員指南中的使用 AWS Lambda 搭配 Amazon Kinesis使用 AWS Lambda 搭配 Amazon DynamoDB。