LambdaイベントソースにSQSを設定したときのメモ
メモ
- LambdaのイベントソースにFIFOキューは対応していない(スタンダードキューのみ対応)
- Lambdaにメッセージが渡されるとそのメッセージは処理中のメッセージとなる
- Lambdaが処理に失敗するとずっとリトライする
デッドレターキュー(DLQ)を設定するとリトライ回数を設定できる - LambdaからRDSに接続するには同じVPCにする必要がある(もしくは、IAM認証?を使う?)
- Lambdaの同時実行数を0にするとそのLambdaの起動を防ぐ
- Lambdaの同時実行数に引っかかっている状態でSQSにメッセージが届くと、Lambdaは起動せずメッセージはDLQへいく
同時実行数1で短時間に100件のメッセージを送ったら、10件がDLQにいっていた
権限設定
SQS -> Lambda -> RDSの場合の、ロールにアタッチするポリシーは以下 そのロールをLambdaに設定する
- AmazonRDSFullAccess
- AmazonSQSFullAccess
- AWSLambdaBasicExecutionRole
- AWSLambdaVPCAccessExecutionRole
フルアクセスより細かく設定した方が良さそう?