さいしょに
AWS Lambda のバージョンごとに紐付ける Kinesis Stream を切り替える方法について。
やりたいこと
Kinesis Stream から取得したデータを Lambda で処理するようなシステムを想定。
以下の要件が、本投稿の内容で対応可能。
- Lambda にバージョンを作成したい
-
Version $LATEST
を開発環境として使用 -
Version 1, 2
などのバージョンを本番環境として使用
-
- Lambda の開発環境と本番環境で接続する Kinesis を別にしたい
どうやるのか
まずは Lambda のバージョンをつくる
Actions > Publish new version
を選択して、バージョン詳細を入力して Publish。
下記のように Version 1
が作成される。同様の手順で Version 2
以降を作成することができる。
あとは適宜 alias など設定しておくといいだろう。
各バージョン毎に Event source を設定する
Version $LATEST
の Event source > Add event source
から接続したい Kinesis を選択する。
続けて、 Version 1
の Event source > Add event source
から接続したい Kinesis を選択する。
これで Lambda の各バージョン毎に違う Kinesis を接続することができた。
さいごに
全体設定に注意
Create a Lambda function > Select blueprint
から Kinesis の blueprint から作成した場合など、対象 function 全体の Event source に Kinesis が紐付く場合がある。
この状態で各バージョンの Event source を設定しても、全体設定が優先されてしまうので注意。全体の方を削除すれば各バージョンの Event source が動作するようになる。
alias 毎に Event source を設定する
同様に alias 毎に Kinesis を設定できる。(記事の主役にはしていないが)
バージョンごとだと Publish の度に付け替えが面倒なので、 alias 毎に設定をした方がいいだろう。