説明
Lambdaの非同期呼び出しが再試行後も処理できない場合、DLQや失敗送信先でイベントを保管できます。Serverless FrameworkのonErrorはSNSトピックを指定する設定であり、同期呼び出しやSQSトリガーの失敗処理を代替するものではありません。
想定される影響
失敗イベントの保管経路がなければ、再試行期限を過ぎたイベントの調査や再処理が難しくなる場合があります。
対処方法
呼び出し方式に合う失敗処理を選んでください。onErrorを使う場合は、既存のSNSトピック、発行権限、イベントを保管する購読先、再処理手順を構成してください。
例
Framework 4とNode.js 22に対応するhandler.helloを別途用意する抜粋です。failureTopicArnに既存のSNSトピックARNを渡してください。
変更前
yaml
service: service
frameworkVersion: '4'
provider:
name: aws
runtime: nodejs22.x
functions:
hello:
handler: handler.hello
変更後
yaml
service: service
frameworkVersion: '4'
provider:
name: aws
runtime: nodejs22.x
functions:
hello:
handler: handler.hello
onError: ${param:failureTopicArn}