11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ハンズラボAdvent Calendar 2019

Day 16

AWSでSQSをLambdaのトリガーをマネージメントコンソールで設定するときに気をつけたい運命の分かれ道

Last updated at Posted at 2019-12-15

はじめに

AWS LambdaのトリガーにSQSを設定されている方も多いと思います。
SQSのキューにメッセージが送られると、トリガーに設定されたLambdaが呼び出されます。
一度の起動で複数のメッセージを処理することも可能で、このメッセージの数はバッチサイズで指定できます。最大は10です。

Lambdaの用途によっては、バッチサイズを1にして運用する場合もあります。
マネージメントコンソールでトリガーを設定する主な導線は、

  1. SQSからLambdaを設定する
  2. LambdaからSQSを設定する

の2通りがありますが、これが運命の分かれ道です。
実際にトリガーを設定してみるので、どのような画面遷移なのかご覧ください。

状況

sqs_sampleというLambdaとlambda_triggerというSQSのキューがあります。
lambda_triggerがメッセージを受信するとlambda_triggerが発火するようにトリガーを設定します。

Lambdaからトリガーを設定する場合

マネージメントコンソールからLambda > 関数 > sqs_sampleを選択します。
この画面で「トリガーを追加」をクリックします。
スクリーンショット 2019-12-03 10.11.10.png

プルダウンからSQSを選択します。
スクリーンショット 2019-12-03 10.17.07.png

スクリーンショット 2019-12-03 10.28.56.png

プルダウンからlambda_triggerを選択します。
ここで注目してもらいたいのは、バッチサイズが画面に表示されている点です。
これにより、トリガーのバッチサイズが10であることをユーザーは認識できます。
今回は10で設定しました。

スクリーンショット 2019-12-03 10.31.47.png

トリガーが設定されるまで1分ほど待ちます。
これで設定完了です。
スクリーンショット 2019-12-03 12.16.32.png

SQSからトリガーを設定する場合

マネージメントコンソールからSQSを選択します。すでにキューが存在する場合は作成済みキューの一覧が表示されます。
lambda_triggerを選択して「キュー操作」をクリックします。
スクリーンショット 2019-12-03 13.36.39.png

表示されたメニューから「Lambda関数のトリガーの設定」を選択します。
スクリーンショット 2019-12-03 13.36.59.png

プルダウンメニューからsqs_sampleを選択して「保存」をクリックします。
スクリーンショット 2019-12-03 13.44.18.png

これでトリガーが設定されました。:rocket:
スクリーンショット 2019-12-03 13.51.20.png

ご覧いただいたように、SQSからトリガーを設定する場合はバッチサイズなんてワードは一切出てきません
ちなみに、バッチサイズは10で設定されます。

まとめ

バッチサイズが1に設定されていることを前提としたLambdaをデプロイするときは気をつけましょう

設定済みのトリガーのバッチサイズを変更する方法はみつからなかったので、一度削除してからLambdaからトリガーを設定しましょう。


ハンズラボ Advent Calendar 2019 17日目は@bakupenさんです🎉

11
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?