関数へのレイヤーの追加
Lambda レイヤーは、補助的なコードやデータを含む .zip ファイルアーカイブです。レイヤーには通常、ライブラリの依存関係、カスタムランタイム、または設定ファイルが含まれています。
このセクションでは、Lambda 関数にレイヤーを追加する方法を説明します。レイヤーの概念的な情報とその使用を検討する理由の詳細については、レイヤーによる Lambda 依存関係の管理 を参照してください。
レイヤーを使用するよう Lambda 関数を設定する前に、以下を実行する必要があります。
-
レイヤーバージョンで GetLayerVersion API を呼び出す権限があることを確認する。AWS アカウント の関数については、ユーザーポリシーでこの権限を持っている必要があります。別のアカウントでレイヤーを使用するには、そのアカウントの所有者は、リソースベースのポリシーで自分のアカウントにアクセス許可を付与する必要があります。例については、「他のアカウントに Lambda レイヤーへのアクセス許可を付与する」を参照してください。
Lambda 関数には最大 5 つのレイヤーを追加できます。関数とすべてのレイヤーの解凍後の合計サイズは、解凍後のデプロイパッケージのサイズクォータである 250 MB を超えることはできません。詳細については、「Lambda クォータ」を参照してください。
関数は、すでに追加したレイヤーバージョンであれば、そのレイヤーバージョンが削除された後でも、またはレイヤーへのアクセス権限が取り消された後でも、そのレイヤーバージョンを引き続き使用できます。しかし、削除されたレイヤーバージョンを使用して新しい関数を作成することはできません。
関数にレイヤーを追加する方法
Lambda コンソールの [関数]
ページを開きます。 -
関数を選択します。
-
[レイヤー] セクションまで下にスクロールし、[レイヤーの追加] を選択します。
-
[レイヤーを選択する] で、レイヤーソースを選択します。
-
[AWS レイヤー]: AWS マネージド拡張機能のリストから選択します。
-
[カスタムレイヤー]: AWS アカウントで作成したレイヤーを選択します。
-
[ARN の指定]: サードパーティ拡張機能など、別の AWS アカウントのレイヤーを使用するには、Amazon リソースネーム (ARN) を入力します。
-
-
[Add] (追加) を選択します。
レイヤーを追加する順序は、Lambda がレイヤーのコンテンツを実行環境にマージする順序です。レイヤーのマージ順序はコンソールを使用して変更できます。
関数のレイヤーのマージ順序を更新するには (コンソール)
Lambda コンソールの [関数]
ページを開きます。 -
設定する関数を選択します。
-
[Layers] (レイヤー) で [Edit] (編集) をクリックします。
-
レイヤーの 1 つを選択します。
-
[Merge earlier (前にマージする)] または [Merge later (後にマージする)] を選択して、レイヤーの順序を調整します。
-
[保存] を選択します。
レイヤーはバージョン管理されています。各レイヤーバージョンのコンテンツは変更できません。レイヤーの所有者は更新されたコンテンツを提供するため、新しいレイヤーバージョンをリリースすることができます。関数に添付されているレイヤーバージョンを更新するには、コンソールを使用します。
関数のレイヤーバージョンを更新するには (コンソール)
-
Lambda コンソールの [Layers (レイヤー)] ページ
を開きます。 -
バージョンを更新したいレイヤーを選択します。
-
[Functions using this version] (このバージョンを使用する関数) タブを選択します。
-
変更したい関数を選択してから、[Edit] (編集) を選択します。
-
[Layer version] (レイヤーバージョン) では、変更するレイヤーのバージョンを選択します。
-
[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" ] } ] }