Lambdaの状態(State)をチェックする

AWSからLambdaの状態に関するメールが来ました。

English follows Japanese

いつもお世話になっております。

お客様のアカウントにおいて 2021 年 7 月 1 日以降に Lambda 関数の作成、更新、または呼び出しが確認されたため、本通知をお送りしています。

AWS Lambda のすべての関数を対象に、そのライフサイクルを通じて関数の現在の「状態」を追跡する機能 [1] を拡張いたします。この変更に伴い関数の作成/更新を行っている CLI もしくは SDK (およびその両方) ベースの自動化ワークフローに対して、追加のオペレーションを行う前に関数がアクティブになったことを確認するといった処理の追加が必要な可能性がございます。

以前は、主に 2 つのユースケースで「状態」を使用していました。第一に、関数呼び出しのパスから VPC リソースのブロッキング状態に遷移するために使われていました。第二に、コンテナイメージベースの関数向けに Lambda サービスが呼び出し前であってもコンテナイメージの新規作成または更新を最適化するために使用されていました。こうした関数呼び出しのパスから追加の状態へ遷移することで、関数のパフォーマンスにおけるレイテンシーの低下、一貫性の向上がなされます。

AWS CloudFormation、AWS Serverless Application Model (SAM)、AWS Cloud Development Kit (CDK)、Serverless Framework、Hashicorp Terraform、AWS Chalice、および Cloud Custodian などの >Infrastructure as Code およびデプロイ自動化ツールは、すでに「状態」をサポートしています。

これらのツールを利用しており、すでに最新の Software Development Kit (SDK) を使用している場合は、必要となる対応は無いため本通知をお読みいただく必要はございません。以前のバージョンの SDK を使用している場合は、最新のバージョンへの更新をお願いいたします。

お客様が Lambda 関数をデプロイおよび管理する既存のツールを更新できるように、AWS では本変更を複数のフェーズに分けて展開いたします。2021 年 12 月 5 日まで本変更の反映をお客様の Lambda 関数に対して遅らせることができます。2021 年 12 月 6 日以降は本遅延のメカニズムは期限切れとなり、すべてのお客様に対して関数の作成時または更新時に Lambda の「状態」のライフサイクルが適用されます。本変更、各種フェーズのタイムライン、関数の状態を確認する方法に関する参考例については、ブログ記事 [2] をお読みください。

ご質問やご不明な点がある場合は、AWS サポート [3] までお問い合わせください。

Lambdaの状態に関しては下記をご覧ください
https://aws.amazon.com/jp/blogs/news/tracking-the-state-of-lambda-functions/


Lambdaが作成された直後はPending状態なので、Lambdaのものによっては状態がActiveになっているか確認する必要があるというものでした。
正常に作成が終わると自動的にActive状態になるとのことなので、現在動いているLambdaに影響はないと思いますが、念の為確認をします。

「状態の確認にはAWS CLIを使ってね」と書いてありますが、具体的なコマンドまでは載っておらず…
ということで作成したので、何かの参考にしてもらえると嬉しいです。

使い方

プロファイルを指定してLambdaのStateを取得します。
実行に少し時間がかかるので、待ってください。

ファイル作成

curl https://gist.githubusercontent.com/t-sakurai816/ef66e46c585755d2593e6b345e7a91eb/raw/65ca8f665297dc3a03abb2f983e95fb3b38c1431/check-lambda-state.sh > check-lambda-state.sh

実行

引数にプロファイル名を入れます

bash check-lambda-state.sh profile-name

結果

以下のようにLambdaの名前:状態のように出力されます

"LambdaFunctionSample1" : "Active"
"LambdaFunctionSample2" : "Active"
"LambdaFunctionSample3" : "Active"
"LambdaFunctionSample4" : "Active"