AWS Lambda Tips 集

SQS による Lambda 関数のトリガー時に受信したメッセージが削除されず無限ループしてしまう

Lambda 関数の実行ロールに sqs:DeleteMessage へのアクセス許可あるか確認する。

Amazon SQS での Lambda の使用 - AWS Lambda

関数が正常にバッチを処理すると、Lambda はキューからそのメッセージを削除します。

上記の記述のように、SQS による Lambda 関数のトリガー時は Lambda 関数の処理が正常に完了した際に、Lambda によりキューからメッセージが自動削除されます。
しかし、以下の記述のように、キューからメッセージにを削除するには、Lambda 関数の実行ロールに sqs:DeleteMessage へのアクセス許可が必要です。

AWS Lambda 関数 (コンソール) をトリガーするキューの設定 - Amazon Simple Queue Service

Lambda 実行ロールに以下の許可が含まれている必要があります:
・sqs:DeleteMessage
・sqs:GetQueueAttributes
・sqs:ReceiveMessage