

# Lambda 関数の .zip ファイルアーカイブとしてのデプロイ
<a name="configuration-function-zip"></a>

Lambda 関数を作成する場合、関数コードをデプロイパッケージにパッケージ化します。Lambda は、コンテナイメージと .zip ファイルアーカイブの 2 種類のデプロイパッケージをサポートします。関数を作成するワークフローは、デプロイパッケージの種類によって異なります。コンテナイメージとして定義される関数の作成については、[コンテナイメージを使用した Lambda 関数の作成](images-create.md)を参照してください。

Lambda コンソールと Lambda API を使用して、.zip ファイルアーカイブで定義された関数を作成できます。更新済みの .zip ファイルをアップロードして、関数コードを変更することもできます。

**注記**  
既存の関数の[デプロイパッケージタイプ](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html#lambda-CreateFunction-request-PackageType) (.zip またはコンテナイメージ) を変更することはできません。例えば、既存のコンテナイメージ関数を、.zip ファイルアーカイブを使用するように変換することはできません。この場合は、新しい関数を作成する必要があります。

**Topics**
+ [

## 関数の作成
](#configuration-function-create)
+ [

## コンソールのコードエディタの使用
](#configuration-functions-console-update)
+ [

## 関数コードの更新
](#configuration-function-update)
+ [

## ランタイムの変更
](#configuration-function-runtime)
+ [

## アーキテクチャの変更
](#configuration-function-arch)
+ [

## Lambda API の使用
](#configuration-function-api)
+ [

## 関数コードのダウンロード
](#configuration-function-download)
+ [

## CloudFormation
](#configuration-function-cloudformation)
+ [

# Lambda .zip デプロイパッケージの暗号化
](encrypt-zip-package.md)

## 関数の作成
<a name="configuration-function-create"></a>

.zip ファイルアーカイブで定義した関数を作成する場合、その関数のコードテンプレート、言語バージョン、実行ロールを選択します。Lambda が関数を作成したら、関数コードを追加します。

**関数を作成するには**

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

1. [**関数の作成**] を選択してください。

1. [**Author from scratch**] (ゼロから作る) または [**Use a blueprint**] (設計図の使用) を選択して関数を作成します。

1. **[基本的な情報]** で、以下を実行します。

   1. [**関数名**] に関数名を入力します。関数名の長さは 64 文字に制限されています。

   1. [**Runtime**] (ランタイム) で、関数で使用する言語バージョンを選択します。

   1. (オプション) **アーキテクチャ**で、関数に使用する命令セットアーキテクチャを選択します。デフォルトのアーキテクチャは x86\$164 です。関数用のデプロイパッケージを構築するときは、この[命令セットアーキテクチャ](foundation-arch.md)と互換性があることを確認してください。

1. (オプション) [**アクセス権限**] で、[**デフォルトの実行ロールの変更**] を展開します。**実行ロール**を使用することも、既存のロールを使用することもできます。

1. (オプション) [**詳細設定**] を展開します。関数の [**Code signing configuration**] (コード署名設定) を選択します。関数がアクセスできるように (Amazon VPC) を設定することもできます。

1. [**Create function**] (関数の作成) をクリックします。

Lambda によって、新しい関数が作成されます。コンソールを使用して関数コードを追加し、他の関数のパラメータや機能を設定できるようになりました。コードのデプロイに関する手順については、関数が使用するランタイムのハンドラーページを参照してください。

------
#### [ Node.js ]

[.zip ファイルアーカイブで Node.js Lambda 関数をデプロイする](nodejs-package.md) 

------
#### [ Python ]

 [Python Lambda 関数で .zip ファイルアーカイブを使用する](python-package.md) 

------
#### [ Ruby ]

 [.zip ファイルアーカイブで Ruby Lambda 関数をデプロイする](ruby-package.md) 

------
#### [ Java ]

 [.zip または JAR ファイルアーカイブで Java Lambda 関数をデプロイする](java-package.md) 

------
#### [ Go ]

 [.zip ファイルアーカイブを使用して Go Lambda 関数をデプロイする](golang-package.md) 

------
#### [ C\$1 ]

 [.zip ファイルアーカイブを使用して C\$1 Lambda 関数を構築し、デプロイする](csharp-package.md) 

------
#### [ PowerShell ]

 [.zip ファイルアーカイブを使用した PowerShell Lambda 関数のデプロイする](powershell-package.md) 

------

## コンソールのコードエディタの使用
<a name="configuration-functions-console-update"></a>

コンソールで、単一のソースファイルを含む Lambda 関数が作成されます。スクリプト言語の場合、このファイルを編集し、組み込みのコードエディタを使用してファイルをさらに追加することができます。変更を保存するには [**保存**] を選択します。コードを実行するには、[**Test**] (テスト) を選択します。

関数コードを保存すると、Lambda コンソールは .zip ファイルアーカイブのデプロイパッケージを作成します。コンソール外で (SDE を使用して) 関数コードを開発するときは、[デプロイパッケージを作成して](nodejs-package.md)、Lambda 関数にコードをアップロードします。

## 関数コードの更新
<a name="configuration-function-update"></a>

スクリプト言語 (Node.js, Python, and Ruby) の場合は、組み込みのコードエディタで関数コードを編集することができます。コードが 3 MBを超える場合、またはライブラリを追加する必要がある場合、またはエディタでサポートされていない言語 (Java, Go, C\$1) の場合は、関数コードを .zip アーカイブとしてアップロードする必要があります。.zip ファイルアーカイブが 50 MB 未満の場合は、ローカルマシンから .zip ファイルアーカイブをアップロードできます。ファイルが 50 MB を超える場合は、Amazon S3 バケットから関数にファイルをアップロードします。

**関数コードを.zip アーカイブとしてアップロードするには**

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

1. 更新する関数を選択し、[**Code**] (コード) タブを選択します。

1. [**Code source (コードソース)**] で、[**Upload from (アップロード元)**] を選択します。

1. [**.zip file (.zip ファイル)**]、[**Upload (アップロード) **] の順に選択します。

   1. ファイルチューザで新しいイメージバージョンを選択し、[**Open (開く)**]、[**Save (保存) **] の順に選択します。

1. (ステップ 4 の代わりに) **Amazon S3 の場所**を選択します。

   1. テキストボックスに .zip ファイルアーカイブの S3 リンク URL を入力し、[**Save**] (保存) を選択します。

## ランタイムの変更
<a name="configuration-function-runtime"></a>

新しいランタイムを使用するように関数の設定を更新する場合は、新しいランタイムとの互換性を確保するために関数コードを更新する必要がある場合があります。別のランタイムを使用するように関数設定を更新した場合は、ランタイムおよびアーキテクチャと互換性のある新しい関数コードを提供する**必要があります**。関数コードのデプロイパッケージを作成する方法については、関数が使用するランタイムのハンドラーページを参照してください。

Node.js 20、Python 3.12、Java 21、.NET 8、Ruby 3.3 以降のベースイメージは、Amazon Linux 2023 の最小コンテナイメージに基づいています。以前のベースイメージでは Amazon Linux 2 が使用されています。AL2023 ランタイムには、デプロイのフットプリントが小さいことや、`glibc` などのライブラリのバージョンが更新されていることなど、Amazon Linux 2 に比べていくつかの利点があります。詳細については、AWS コンピューティングブログの「[Introducing the Amazon Linux 2023 runtime for AWS Lambda](https://aws.amazon.com/blogs/compute/introducing-the-amazon-linux-2023-runtime-for-aws-lambda/)」を参照してください。

**ランタイムを変更する**

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

1. 更新する関数を選択し、[**Code**] (コード) タブを選択します。

1. コードエディタの下にある **[Runtime settings]** (ランタイム設定) セクションまで下にスクロールします。

1. **[編集]** を選択します。

   1. **[Runtime]** (ランタイム) で、ランタイム識別子を選択します。

   1. [**Handler**] (ハンドラ) で、関数のファイル名とハンドラを指定します。

   1. **アーキテクチャ**で、関数に使用する命令セットアーキテクチャを選択します。

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

## アーキテクチャの変更
<a name="configuration-function-arch"></a>

命令セットアーキテクチャを変更する前に、関数コードがターゲットアーキテクチャと互換性があることを確認する必要があります。

Node.js、Python、Ruby を使用し、組み込みエディタで関数コードを編集する場合、既存のコードが変更されずに実行されることがあります。

ただし、.zip ファイルアーカイブのデプロイパッケージを使用して関数コードを提供する場合は、ターゲットランタイムおよび命令セットアーキテクチャ用に正しくコンパイルされ、構築された新しい .zip ファイルアーカイブを準備する必要があります。手順については、関数ランタイムのハンドラーページを参照してください。

**命令セットアーキテクチャを変更するには**

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

1. 更新する関数を選択し、[**Code**] (コード) タブを選択します。

1. [**Runtime settings**] (ランタイム設定) で、[**Edit**] (編集) を選択します。

1. **アーキテクチャ**で、関数に使用する命令セットアーキテクチャを選択します。

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

## Lambda API の使用
<a name="configuration-function-api"></a>

.zip ファイルアーカイブを使用する関数を作成および設定するには、以下の API オペレーションを使用します。
+ [CreateFunction](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html)
+ [UpdateFunctionCode](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionCode.html)
+ [UpdateFunctionConfiguration](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateFunctionConfiguration.html)

## 関数コードのダウンロード
<a name="configuration-function-download"></a>

関数コード .zip の最新の未公開 (`$LATEST`) バージョンは、Lambda コンソールからダウンロードできます。このためには、まず次の IAM アクセス許可があることを確認します。
+ `iam:GetPolicy`
+ `iam:GetPolicyVersion`
+ `iam:GetRole`
+ `iam:GetRolePolicy`
+ `iam:ListAttachedRolePolicies`
+ `iam:ListRolePolicies`
+ `iam:ListRoles`

**関数コード .zip をダウンロードするには**

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

1. 関数コード .zip をダウンロードする関数を選択します。

1. **[関数の概要]** で、**[ダウンロード]** ボタンを選択し、**[ファンクションコード .zip をダウンロード]** を選択します。

   1. または、**[AWS SAM ファイルをダウンロード]** を選択して、関数の設定に基づいて SAM テンプレートを生成してダウンロードします。**[両方ダウンロード]** を選択して、.zip と SAM テンプレートの両方をダウンロードすることもできます。

## CloudFormation
<a name="configuration-function-cloudformation"></a>

CloudFormation を使用して、.zip ファイルアーカイブを使用する Lambda 関数を作成できます。CloudFormation テンプレートでは、Lambda 関数は `AWS::Lambda::Function` のリソースにより指定されます。`AWS::Lambda::Function` リソースのプロパティの詳細については、*AWS CloudFormation ユーザーガイド*の「[AWS::Lambda::Function](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html)」を参照してください。

`AWS::Lambda::Function` リソースで、次のプロパティを設定して .zip ファイルアーカイブとして定義された関数を作成します。
+ AWS::Lambda::Function
  + PackageType － `Zip` に設定します。
  + コード — Amazon S3 バケット名と.zip ファイル名を `S3Bucket` および `S3Key` のフィールドに入力します。Node.js または Python では、Lambda 関数のインラインソースコードを提供できます。
  + ランタイム — ランタイム値を設定します。
  + アーキテクチャ — AWS Graviton2 プロセッサを使用するには、アーキテクチャ値を`arm64`に設定します。デフォルトでは、アーキテクチャ値は`x86_64`です。

# Lambda .zip デプロイパッケージの暗号化
<a name="encrypt-zip-package"></a>

Lambda では、.zip デプロイパッケージと関数設定詳細の保管時のサーバー側暗号化に常に AWS KMS keyを提供します。デフォルトでは、Lambda は [AWS 所有のキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) を使用します。このデフォルトの動作がワークフローに適している場合は、他の設定をする必要はありません。AWS では、このキーの使用に料金は発生しません。

必要に応じて、AWS KMS カスタマー管理のキーを使用することもできます。その場合、KMS キーのローテーションの制御や、KMS キーの管理に関する組織の要件への準拠を行うことができます。カスタマーマネージドキーを使用すると、KMS キーへのアクセス許可があるアカウントのユーザーのみが、関数のコードや設定を表示または管理できます。

カスタマーマネージドキーには、標準の AWS KMS 料金が発生します。詳細については、「[AWS Key Management Service 料金表](https://aws.amazon.com/kms/pricing/)」を参照してください。

## カスタマーマネージドキーを作成する
<a name="create-key"></a>

 対称カスタマーマネージドキーを作成するには、AWS マネジメントコンソール または AWS KMS API を使用します。

**対称カスタマーマネージドキーを作成するには**

「*AWS Key Management Service デベロッパーガイド*」の「[KMS キーを作成する](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」の手順に従ってください。

### アクセス許可
<a name="enable-zip-permissions"></a>

**キーポリシー**

[キーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)は、カスタマーマネージドキーへのアクセスを制御します。すべてのカスタマーマネージドキーには、キーポリシーが 1 つだけ必要です。このポリシーには、そのキーを使用できるユーザーとその使用方法を決定するステートメントが含まれています。詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[キーポリシーを変更する方法](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to)」を参照してください。

カスタマーマネージドキーを使用して .zip デプロイパッケージを暗号化する場合、Lambda はキーに [grant](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) を追加しません。AWS KMS キーポリシーで、Lambda がユーザーに代わって次の AWS KMS API オペレーションを呼び出せるようにする必要があります。
+ [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

次のキーポリシーの例では、アカウント 111122223333 のすべての Lambda 関数が、指定されたカスタマーマネージドキーに必要な AWS KMS オペレーションを呼び出せるようにします。

**Example AWS KMS キーポリシー**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "lambda.amazonaws.com"
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
            "Condition": {
                "StringLike": {
                "kms:EncryptionContext:aws:lambda:FunctionArn": "arn:aws:lambda:us-east-1:111122223333:function:*"
                }
            }
        }
    ]
}
```

[キーアクセスのトラブルシューティング](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html#example-no-iam)に関する詳細については、「AWS Key Management Service デベロッパーガイド」を参照してください。**

**プリンシパルアクセス権限**

カスタマーマネージドキーを使用して .zip デプロイパッケージを暗号化すると、そのキーにアクセスできる[プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html)のみが .zip デプロイパッケージにアクセスできます。例えば、カスタマーマネージドキーにアクセスできないプリンシパルは、[GetFunction](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunction.html) レスポンスに含まれている署名付き S3 URL を使用して .zip パッケージをダウンロードすることはできません。`AccessDeniedException` は、レスポンスの `Code` セクションで返されます。

**Example AWS KMS AccessDeniedException**  

```
{
    "Code": {
        "RepositoryType": "S3",
        "Error": {
            "ErrorCode": "AccessDeniedException",
            "Message": "KMS access is denied. Check your KMS permissions. KMS Exception: AccessDeniedException KMS Message: User: arn:aws:sts::111122223333:assumed-role/LambdaTestRole/session is not authorized to perform: kms:Decrypt on resource: arn:aws:kms:us-east-1:111122223333:key/key-id with an explicit deny in a resource-based policy"
        },
        "SourceKMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/key-id"
    },
	...
```

AWS KMS キーのアクセス許可については、「[AWS KMS キーアクセスとアクセス許可](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)」を参照してください。

## .zip デプロイパッケージにカスタマーマネージドキーを使用する
<a name="enable-zip-custom-encryption"></a>

次の API パラメータを使用して、.zip デプロイパッケージのカスタマーマネージドキーを設定します。
+ [SourceKMSKeyArn](https://docs.aws.amazon.com/lambda/latest/api/API_FunctionCode.html#lambda-Type-FunctionCode-SourceKMSKeyArn): ソースの .zip デプロイパッケージ (アップロードするファイル) を暗号化します。
+ [KMSKeyArn](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunction.html#lambda-CreateFunction-request-KMSKeyArn): [環境変数](configuration-envvars-encryption.md)と [Lambda SnapStart](snapstart.md) のスナップショットを暗号化します。

`SourceKMSKeyArn` と `KMSKeyArn` の両方が指定されている場合、Lambda は `KMSKeyArn` キーを使用して、Lambda が関数の呼び出しに使用する解凍されたバージョンのパッケージを暗号化します。`SourceKMSKeyArn` が指定されていて `KMSKeyArn` が指定されていない場合、Lambda は [AWS マネージドキー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)を使用して解凍されたバージョンのパッケージを暗号化します。

------
#### [ Lambda console ]

**関数の作成時にカスタマーマネージドキーの暗号化を追加するには**

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

1. [**関数の作成**] を選択してください。

1. **[Author from scratch]** (一から作成) または **[Container image]** (コンテナイメージ) をクリックします。

1. **[基本的な情報]** で、以下を実行します。

   1. [**関数名**] に関数名を入力します。

   1. [**Runtime**] (ランタイム) で、関数で使用する言語バージョンを選択します。

1. **[詳細設定]** を展開し、**[AWS KMS カスタマーマネージドキーによる暗号化を有効にする]** を選択します。

1. カスタマーマネージドキーを選択します。

1. [**関数の作成**] を選択してください。

カスタマーマネージドキーの暗号化を削除するか、別のキーを使用するには、.zip デプロイパッケージを再度アップロードする必要があります。

**カスタマーマネージドキーの暗号化を既存の関数に追加するには**

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

1. 関数の名前を選択します。

1. **[コードソース]** ペインで、**[アップロード元]** をクリックします。

1. **[.zip ファイル]** または **[Amazon S3 の場所]** を選択します。  
![\[\]](http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/images/upload-zip.png)

1. ファイルをアップロードするか、Amazon S3 の場所を入力します。

1. **[AWS KMS カスタマーマネージドキーによる暗号化を有効にする]** を選択します。

1. カスタマーマネージドキーを選択します。

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

------
#### [ AWS CLI ]

**関数の作成時にカスタマーマネージドキーの暗号化を追加するには**

次に [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) の例を示します。
+ `--code`: zip デプロイパッケージへのローカルパス (`ZipFile`) および暗号化するためのカスタマーマネージドキー (`SourceKMSKeyArn`) を指定します。
+ `--kms-key-arn`: 環境変数と解凍されたバージョンのデプロイパッケージを暗号化するカスタマーマネージドキーを指定します。

```
aws lambda create-function \
  --function-name myFunction \
  --runtime nodejs24.x \
  --handler index.handler \
  --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \
  --code ZipFile=fileb://myFunction.zip,SourceKMSKeyArn=arn:aws:kms:us-east-1:111122223333:key/key-id \
  --kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key2-id
```

次に [create-function](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-function.html) の例を示します。
+ `--code`: Amazon S3 バケット内の .zip ファイルの場所 (`S3Bucket`、`S3Key`、`S3ObjectVersion`) および暗号化するためのカスタマーマネージドキー (`SourceKMSKeyArn`) を指定します。
+ `--kms-key-arn`: 環境変数と解凍されたバージョンのデプロイパッケージを暗号化するカスタマーマネージドキーを指定します。

```
aws lambda create-function \
  --function-name myFunction \
  --runtime nodejs24.x --handler index.handler \
  --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \
  --code S3Bucket=amzn-s3-demo-bucket,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion,SourceKMSKeyArn=arn:aws:kms:us-east-1:111122223333:key/key-id \
  --kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key2-id
```

**カスタマーマネージドキーの暗号化を既存の関数に追加するには**

次に [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html) の例を示します。
+ `--zip-file`: .zip デプロイパッケージへのローカルパスを指定します。
+ `--source-kms-key-arn`: zip 化されたバージョンのデプロイパッケージを暗号化するカスタマーマネージドキーを指定します。Lambda は、AWS 所有キーを使用して、解凍されたパッケージを関数呼び出しのために暗号化します。カスタマーマネージドキーを使用して解凍されたバージョンのパッケージを暗号化する場合は、`--kms-key-arn` オプションを指定して [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html) コマンドを実行します。

```
aws lambda update-function-code \
  --function-name myFunction \
  --zip-file fileb://myFunction.zip \
  --source-kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key-id
```

次に [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html) の例を示します。
+ `--s3-bucket`: Amazon S3 バケット内の .zip ファイルの場所を指定します。
+ `--s3-key`: デプロイパッケージの Amazon S3 キーを指定します。
+ `--s3-object-version`: バージョニングオブジェクトの場合、使用するデプロイパッケージオブジェクトのバージョンです。
+ `--source-kms-key-arn`: zip 化されたバージョンのデプロイパッケージを暗号化するカスタマーマネージドキーを指定します。Lambda は、AWS 所有キーを使用して、解凍されたパッケージを関数呼び出しのために暗号化します。カスタマーマネージドキーを使用して解凍されたバージョンのパッケージを暗号化する場合は、`--kms-key-arn` オプションを指定して [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html) コマンドを実行します。

```
aws lambda update-function-code \
  --function-name myFunction \
  --s3-bucket amzn-s3-demo-bucket \
  --s3-key myFileName.zip \
  --s3-object-version myObject Version
  --source-kms-key-arn arn:aws:kms:us-east-1:111122223333:key/key-id
```

**既存の関数からカスタマーマネージドキーの暗号化を削除するには**

次の [update-function-code](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-code.html) の例では、`--zip-file` で .zip デプロイパッケージのローカルパスを指定します。`--source-kms-key-arn` オプションを指定せずにこのコマンドを実行すると、Lambda は AWS 所有キーを使用して、zip 化されたバージョンのデプロイパッケージを暗号化します。

```
aws lambda update-function-code \
  --function-name myFunction \
  --zip-file fileb://myFunction.zip
```

------