Lambdaのデプロイが反映されない
最近ジョインしたプロダクトの開発環境にて、修正したLambda関数をサクッと確認してみようとしたところ「あれ? デプロイしたのに反映されていない……?」となったので以下対応メモします。
事象
既にCloudformationその他で構築され問題なく動作しているAWS環境にて、Lambdaのソース(Python3.7)を修正して動かしてみたところ、明らかにソースが反映されていない(修正前のコードで動いている)という事象が発生。
デプロイのやり方としてはとてもシンプルで、Lambdaのチュートリアルとかでもよくある「コンソール画面でソースを修正して、『Deploy』クリック」するという方法。
その後別のデプロイ方法(zipファイルをアップ、S3の特定の階層に置く、などなど)を試したが変わらず……。
解決方法⇒「エイリアスを設定する」
どうやらLambdaのエイリアスで厳密なバージョン管理が行われていたらしく、特定のバージョンをポインタとして指定していたため、修正コードがアプリケーションに反映されていないようでした。
今回は開発環境での動作確認がしたいだけなので、サクッとLambda関数の「エイリアス」タブから現在のエイリアスを編集しました。
以下のように、バージョンプルダウンの中から「$LATEST」を選択。
もう一度動作確認してみたところ、無事修正後のコードで動作しました!
あれ?反映されていない?となったらエイリアスの確認
アプリケーションのバージョン管理の部分なので、むやみやたらに触るのは良くないとは思います。
ただ、今回のようにちょっとしたコード修正の動作確認を開発検証環境で試したいだけの場合、一時的にエイリアスのバージョンを最新のものにするのもありかな、と思いました。
Lambdaのエイリアス設定の理解が曖昧だったので、いい勉強になりました。
以下の記事がとても参考になりました。