コンテナイメージとして定義された関数の呼び出し - AWS Lambda

コンテナイメージとして定義された関数の呼び出し

コンテナイメージとして定義された Lambda 関数では、.zip ファイルアーカイブとして定義された関数と、呼び出し時の関数の動作が非常によく似ています。次のセクションでは、類似点と相違点に重点をおきます。

関数のライフサイクル

新規または更新済みのコンテナイメージをアップロードすると、Lambda は、関数が呼び出しを処理する前にイメージを最適化します。最適化プロセスには数秒かかる場合があります。この関数は、プロセスが完了するまで Pending 状態のままです。その後、関数は Active 状態に移行します。Pending 状態のときに関数を呼び出すことはできますが、関数に対する他のオペレーションは失敗します。イメージ更新の進行中に発生した呼び出しは、以前のイメージのコードを実行します。

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

Lambda は、Amazon Elastic Container Registry (Amazon ECR) リポジトリから、関連するコンテナイメージを定期的に取得します。対応するコンテナイメージが Amazon ECR に存在しなくなった場合、またはアクセス許可が失効した場合、関数は Failed 状態になり、Lambda が関数呼び出しに対して失敗を返します。

Lambda API を使用して、関数の状態に関する情報を取得できます。詳細については、「Lambda 関数の状態」を参照してください。

関数の呼び出し

関数を呼び出すと、Lambda は実行環境にコンテナイメージをデプロイします。Lambda は拡張機能を初期化してから、関数の初期化コード (メインハンドラ外のコード) を実行します。関数の初期化期間は、請求される実行時間に含まれていることに注意してください。

その後、Lambda は、関数設定 (ENTRYPOINT および CMD コンテナイメージ設定) で指定されたコードエントリポイントを呼び出して関数を実行します。

イメージのセキュリティ

Lambda が元のソース (Amazon ECR) から最初にコンテナイメージをダウンロードするとき、コンテナイメージは、認証されたコンバージェント暗号化方式を使用して最適化、暗号化、および保存されます。顧客データの復号化に必要なすべてのキーは、AWS KMS カスタマー管理のキーを使用して保護されます。Lambda によるカスタマー管理のキーの使用状況を追跡および監査するために、AWS CloudTrail ログを表示できます。