関数へのレイヤーの追加 - AWS Lambda

関数へのレイヤーの追加

Lambda レイヤーは、補助的なコードやデータを含む .zip ファイルアーカイブです。レイヤーには通常、ライブラリの依存関係、カスタムランタイム、または設定ファイルが含まれています。

このセクションでは、Lambda 関数にレイヤーを追加する方法を説明します。レイヤーの概念的な情報とその使用を検討する理由の詳細については、レイヤーによる Lambda 依存関係の管理 を参照してください。

レイヤーを使用するよう Lambda 関数を設定する前に、以下を実行する必要があります。

Lambda 関数には最大 5 つのレイヤーを追加できます。関数とすべてのレイヤーの解凍後の合計サイズは、解凍後のデプロイパッケージのサイズクォータである 250 MB を超えることはできません。詳細については、「Lambda クォータ」を参照してください。

関数は、すでに追加したレイヤーバージョンであれば、そのレイヤーバージョンが削除された後でも、またはレイヤーへのアクセス権限が取り消された後でも、そのレイヤーバージョンを引き続き使用できます。しかし、削除されたレイヤーバージョンを使用して新しい関数を作成することはできません。

関数にレイヤーを追加する方法
  1. Lambda コンソールの [関数] ページを開きます。

  2. 関数を選択します。

  3. [レイヤー] セクションまで下にスクロールし、[レイヤーの追加] を選択します。

  4. [レイヤーを選択する] で、レイヤーソースを選択します。

    1. [AWS レイヤー]: AWS マネージド拡張機能のリストから選択します。

    2. [カスタムレイヤー]: AWS アカウントで作成したレイヤーを選択します。

    3. [ARN の指定]: サードパーティ拡張機能など、別の AWS アカウントのレイヤーを使用するには、Amazon リソースネーム (ARN) を入力します。

  5. [Add] (追加) を選択します。

レイヤーを追加する順序は、Lambda がレイヤーのコンテンツを実行環境にマージする順序です。レイヤーのマージ順序はコンソールを使用して変更できます。

関数のレイヤーのマージ順序を更新するには (コンソール)
  1. Lambda コンソールの [関数] ページを開きます。

  2. 設定する関数を選択します。

  3. [Layers] (レイヤー) で [Edit] (編集) をクリックします。

  4. レイヤーの 1 つを選択します。

  5. [Merge earlier (前にマージする)] または [Merge later (後にマージする)] を選択して、レイヤーの順序を調整します。

  6. [保存] を選択します。

レイヤーはバージョン管理されています。各レイヤーバージョンのコンテンツは変更できません。レイヤーの所有者は更新されたコンテンツを提供するため、新しいレイヤーバージョンをリリースすることができます。関数に添付されているレイヤーバージョンを更新するには、コンソールを使用します。

関数のレイヤーバージョンを更新するには (コンソール)
  1. Lambda コンソールの [Layers (レイヤー)] ページを開きます。

  2. バージョンを更新したいレイヤーを選択します。

  3. [Functions using this version] (このバージョンを使用する関数) タブを選択します。

  4. 変更したい関数を選択してから、[Edit] (編集) を選択します。

  5. [Layer version] (レイヤーバージョン) では、変更するレイヤーのバージョンを選択します。

  6. [Update functions] (関数を更新) をクリックします。

AWS アカウント間で、関数のレイヤーバージョン更新することはできません。

レイヤー情報の確認

関数のランタイムと互換性のあるレイヤーをアカウントで検索するには、ListLayers API を使用します。例えば、以下の list-layers AWS Command Line Interface (CLI) コマンドを使用できます。

aws lambda list-layers --compatible-runtime python3.13

次のような出力が表示されます:

{ "Layers": [ { "LayerName": "my-layer", "LayerArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer", "LatestMatchingVersion": { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2025-04-15T00:37:46.592+0000", "CompatibleRuntimes": [ "python3.13" ] } } ] }

アカウント内のすべてのレイヤーをリスト化するには、--compatible-runtime オプションを省略します。レスポンスの詳細には、各レイヤーの最新バージョンが表示されます。

ListLayerVersions API を使用して、最新バージョンのレイヤーを取得することもできます。たとえば、次の list-layer-versions CLI コマンドを使用することができます。

aws lambda list-layer-versions --layer-name my-layer

次のような出力が表示されます:

{ "LayerVersions": [ { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:2", "Version": 2, "Description": "My layer", "CreatedDate": "2023-11-15T00:37:46.592+0000", "CompatibleRuntimes": [ "java11" ] }, { "LayerVersionArn": "arn:aws:lambda:us-east-2:123456789012:layer:my-layer:1", "Version": 1, "Description": "My layer", "CreatedDate": "2023-11-15T00:27:46.592+0000", "CompatibleRuntimes": [ "java11" ] } ] }