APIで、Inactive状態のlambdaをInvokeせずにActiveにする方法は?

0

一定期間アイドル状態になったlambdaはInactiveになりますが、 APIで関数の実行(invoke)をせずに起動したいです。 invokeを実行する以外に方法はありますか?

質問済み 7ヶ月前394ビュー
2回答
0

料金はかかりますがプロビジョニング済み同時実行を設定しておくことでInactiveに推移するのを回避できます。
https://dev.classmethod.jp/articles/tsnote-aws-lambda-how-can-i-avoid-the-inactive-state-of-the-lambda-function/

profile picture
エキスパート
回答済み 7ヶ月前
  • 関数の呼び出しが必要なはずなのでre:Post Agentの回答にあるタグの設定などでは解決できないと思います。 https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images-create.html#images-lifecycle

    数週間にわたって関数が呼び出されない場合、Lambda は最適化されたバージョンを再利用し、関数は Inactive 状態に移行します。関数を再度アクティブにするには、関数を呼び出す必要があります。Lambda は最初の呼び出しを拒否し、関数は Lambda がイメージを再最適化するまで Pending 状態に入ります。その後、関数は Active 状態に戻ります。

0

Inactive状態のLambda関数をAPIを使用してInvokeせずにActive状態にする直接的な方法はありません。Lambda関数がInactive状態になるのは、長期間アイドル状態が続いた結果、Lambdaサービスが関数に関連付けられた外部リソース(VPCリソースなど)を回収したためです。

しかし、関数を再度Active状態にするためには、何らかの形で関数を「触る」必要があります。以下のような方法が考えられます:

  1. 関数の設定を更新する:UpdateFunctionConfiguration APIを使用して、関数の設定を更新します。これにより、Lambdaサービスは関数のリソースを再構成しようとします。

  2. 新しいバージョンをパブリッシュする:PublishVersion APIを使用して、関数の新しいバージョンを作成します。

  3. タグを追加または更新する:TagResource APIを使用して、関数にタグを追加または更新します。

これらの操作を行うと、関数は一時的にPending状態になり、その後Active状態に移行する可能性があります。ただし、これらの方法は関数の直接的な実行(Invoke)を避けるための代替手段であり、確実にActive状態になることを保証するものではありません。

最も確実な方法は、やはり関数をInvokeすることです。Invokeに失敗した場合、LambdaサービスはPending状態に移行し、必要なリソースの再作成を試みます。その後、成功すればActive状態になります。
Sources
Lambda function states - AWS Lambda

profile picture
回答済み 7ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ