みなさん、こんにちは。サニービュー事業部の小寺です。

AWSよりAWS Lambda 関数の「状態」の拡張について、ヘルスダッシュボードに通知があったので、内容をお伝えします!

AWS Lambda 関数の「状態」の拡張

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

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 を使用している場合は、最新のバージョンへの更新が必要となります。

関数状態のライフサイクル

ある状態から別の状態への関数状態の遷移は、関数に対して実行されるアクションに完全に依存しています。関数の状態から状態に手動で移動する方法はありません。

https://aws.amazon.com/jp/blogs/news/tracking-the-state-of-lambda-functions/より引用

すべての関数について、主要な状態のライフサイクルは次のようになります。

  • 作成時に、関数はPending状態になります
  • 必要なリソースが正常に作成されると、Active状態に移行します
  • リソースまたは関数の作成が何らかの理由で失敗すると、Failed状態に移行します
  • 関数が数週間アイドルのままの場合、Inactive状態になります
  • Inactiveになった後の最初の呼び出しで、関数は再びPending状態に入ります
  • 成功すると、状態が再びActiveに設定されます
  • 失敗すると、状態がInactiveに戻ります
  • Inactive状態の関数を正常に更新すると、状態が再びActive状態に戻ります
https://aws.amazon.com/jp/blogs/news/tracking-the-state-of-lambda-functions/より引用

スケジュール

・2021年12月5日まで
本変更の反映をLambda 関数に対して反映せずに、先送りにすることができます。
・2021年12月6日以降
2021年12月6日以降は本遅延のメカニズムは期限切れとなり、すべてのAWSアカウントでの関数の作成時または更新時に Lambda の「状態」のライフサイクルが適用されます。

確認方法

Download the latest AWS CLI (version 2.2.18 or greater) または SDKsを利用して現在の状態を
取得して確認することができます。

まとめ

AWS Lambda 関数の「状態」の拡張について、2021年12月6日以降はLambda の「状態」のライフサイクルが適用されます。対象となる場合は、確認の上、検証などの計画を立てる必要がありますね。