投稿日: Nov 25, 2019

AWS Lambda は、Kinesis および DynamoDB ストリームを処理するための関数エラーの二等分、最大レコード経過時間、最大再試行回数、および失敗時の送信先の 4 つの障害処理機能をサポートするようになりました。これらの新機能により、データ処理の失敗に対する応答をカスタマイズし、より回復力のあるストリーム処理アプリケーションを構築できます。

Lambda は、Kinesis および DynamoDB ストリームからのデータレコードをバッチで処理します。 以前は、関数がエラーを返すと、Lambda は影響を受けるシャード内のデータの処理を停止し、レコードのバッチ全体を再試行しました。これらのレコードは、Lambda によって正常に処理されるか、イベントソースによって期限切れになるまで継続的に再試行されます。

関数エラーの二等分
関数エラーの二等分を有効にすると、Lambda は、関数がエラーを返したときに影響を受けるレコードのバッチを 2 つに分割し、それらを個別に再試行します。これにより、不正な形式のデータレコードを残りのバッチから簡単に分離し、残りのデータレコードを正常に処理できます。

レコードの最大有効期間
Lambda 関数は、最大レコード経過時間 (60 秒から 7 日間まで設定可能) に達したときにデータレコードの処理をスキップできます。

最大再試行回数
Lambda 関数は、0〜10,000 に設定できる最大再試行回数に達したときに、レコードのバッチの再試行をスキップできます。 

失敗時の送信先
Lambda 関数は、エラーを返した場合でもシャードの処理を続行できるようになりました。データレコードが最大再試行回数または最大レコード経過時間に達すると、シャード ID やストリーム ARN などのメタデータをこれらの SQS キューまたは SNS トピックの 2 つの送信先のいずれかに送信して、さらに調査することができます。

これらの機能は、AWS マネジメントコンソール、AWS CLI、AWS CloudFormation、または AWS SDK for Lambda で開始できます。同機能は、AWS Lambda が利用可能なすべてのリージョンで、追加料金なしで使用できます。AWS Lambda を使用できるリージョンの詳細については、AWS リージョン表を参照してください。詳細については、AWS Lambda 開発者ガイドAWS Lambda を Amazon Kinesis に使用するおよび AWS Lambda を Amazon DynamoDB に使用するを参照してください。