

# Lambda 拡張機能の設定
<a name="extensions-configuration"></a>

## 拡張子の設定 (.zip ファイルアーカイブ)
<a name="using-extensions-config"></a>

関数に、[Lambda レイヤー](chapter-layers.md)として拡張機能を追加できます。レイヤーを使用すれば、組織全体または Lambda デベロッパーのコミュニティ全体で拡張機能を共有できます。1 つ以上の拡張機能をレイヤーに追加できます。1 つの関数に最大 10 個の拡張機能を登録できます。

レイヤーの場合と同じメソッドを使用して、関数に拡張機能を追加します。詳細については、「[レイヤーによる Lambda 依存関係の管理](chapter-layers.md)」を参照してください。

**関数に拡張機能を追加する (コンソール)**

1. Lambda コンソールの [[関数ページ]](https://console.aws.amazon.com/lambda/home#/functions) を開きます。

1. 関数を選択します。

1. 選択されていない場合は、[**Code (コード)**] タブを選択します。

1. [**レイヤー**] で、[**Edit (編集)**] を選択します。

1. [**Choose a layer**] の [**Specify an ARN**] を選択します。

1. [**Specify an ARN**] に、拡張機能レイヤーの Amazon リソースネーム (ARN) を入力します。

1. **[追加]** を選択します。

## コンテナイメージでの拡張機能の使用
<a name="invocation-extensions-images"></a>

[コンテナイメージ](images-create.md)に拡張機能を追加できます 。ENTRYPOINT コンテナイメージ設定では、関数のメインプロセスを指定します。Dockerfile で ENTRYPOINT 設定を行うか、関数設定のオーバーライドとして設定します。

コンテナ内で複数のプロセスを実行できます。Lambda は、メインプロセスと任意の追加プロセスのライフサイクルを管理します。Lambda は、[拡張機能 API](runtimes-extensions-api.md) を使用して、拡張機能のライフサイクルを管理します。

### 外部拡張機能の追加の例
<a name="extensions-images-ex1"></a>

外部拡張機能は、Lambda 関数とは別のプロセスで実行されます。Lambda は、`/opt/extensions/` ディレクトリで各拡張モジュールのプロセスを開始します。Lambda は、拡張機能 API を使用して、拡張機能のライフサイクルを管理します。関数が実行され完了すると、Lambda はそれぞれの外部拡張機能に `Shutdown` イベントを送信します。

**Example Python ベースイメージに外部拡張機能を追加する**  

```
FROM public.ecr.aws/lambda/python:3.11

# Copy and install the app
COPY /app /app
WORKDIR /app
RUN pip install -r requirements.txt

# Add an extension from the local directory into /opt/extensions
ADD my-extension.zip /opt/extensions
CMD python ./my-function.py
```

## 次のステップ
<a name="using-extensions-next"></a>

拡張機能の詳細を参照するには、次のリソースをお勧めします。
+ 基本的な使用例については、AWS Lambda コンピューティングブログの [Building Extensions for AWS](https://aws.amazon.com/blogs/compute/building-extensions-for-aws-lambda-in-preview/) を参照してください。
+ AWS Lambda パートナーが提供する拡張機能の詳細については、AWS Lambda コンピューティングブログの [AWS 拡張機能の紹介](https://aws.amazon.com/blogs/compute/introducing-aws-lambda-extensions-in-preview/)を参照してください。
+ 利用可能な拡張機能とラッパースクリプトの例については、AWS Lambda サンプル GitHub リポジトリの「[AWS Extensions](https://github.com/aws-samples/aws-lambda-extensions)」を参照してください。