STEAM PLACE

エンジニアリングとマネジメント

AWS Lambda のバージョン毎に別の Kinesis をセットする方法

さいしょに

AWS Lambda のバージョンごとに紐付ける Kinesis Stream を切り替える方法について。

 やりたいこと

Kinesis Stream から取得したデータを Lambda で処理するようなシステムを想定。
以下の要件が、本投稿の内容で対応可能。

  • Lambda にバージョンを作成したい
    • Version $LATEST を開発環境として使用
    • Version 1, 2 などのバージョンを本番環境として使用
  • Lambda の開発環境と本番環境で接続する Kinesis を別にしたい

 どうやるのか

 まずは Lambda のバージョンをつくる

Actions > Publish new version を選択して、バージョン詳細を入力して Publish。

Lambda_Management_Console 2.png

下記のように Version 1 が作成される。同様の手順で Version 2 以降を作成することができる。

Lambda_Management_Console 3.png

あとは適宜 alias など設定しておくといいだろう。

 各バージョン毎に Event source を設定する

Version $LATEST の Event source > Add event source から接続したい Kinesis を選択する。

Lambda_Management_Console 4.png

続けて、 Version 1 の Event source > Add event source から接続したい Kinesis を選択する。

Lambda_Management_Console 5.png

これで Lambda の各バージョン毎に違う Kinesis を接続することができた。

 さいごに

 全体設定に注意

Create a Lambda function > Select blueprintから Kinesis の blueprint から作成した場合など、対象 function 全体の Event source に Kinesis が紐付く場合がある。

この状態で各バージョンの Event source を設定しても、全体設定が優先されてしまうので注意。全体の方を削除すれば各バージョンの Event source が動作するようになる。

Lambda_Management_Console.png

 alias 毎に Event source を設定する

同様に alias 毎に Kinesis を設定できる。(記事の主役にはしていないが)
バージョンごとだと Publish の度に付け替えが面倒なので、 alias 毎に設定をした方がいいだろう。