Lambda 関数のソースコードを S3 経由でアップロードする方法を教えてください

Lambda 関数のソースコードを S3 経由でアップロードする方法を教えてください

Clock Icon2024.12.17

困っていた内容

Lambda のコード更新するため ZIP ファイルをアップロードしたところファイルサイズが原因で失敗しました。

選択したファイルは大きすぎます。最大サイズは 50 MB です。

Upload the Lambda source code to S3 0

Amazon S3 を使用するとアップロードできそうです。マネジメントコンソールの手順を教えてください。

どう対応すればいいの?

次の手順を実施してください。

  1. Amazon S3 コンソールからファイルをアップロード
    1. 事前にアップデート先となる「バケット」の作成が必要です
  2. アップロードしたファイルの「オブジェクト URL」をメモ
  3. Lambda コンソールからオブジェクト URLを指定して、コードを更新

2024年12月時点の仕様として、50MB を超える ZIP ファイルをアップロードする際は、S3 を経由する必要があります。

Lambda 関数の .zip ファイルアーカイブとしてのデプロイ - AWS Lambda

.zip ファイルアーカイブが 50 MB 未満の場合は、ローカルマシンから .zip ファイルアーカイブをアップロードできます。ファイルが 50 MB を超える場合は、Amazon S3 バケットから関数にファイルをアップロードします。

S3 を経由した場合も、Lambda の仕様としてZIP 解凍済みのサイズが 250MB を超えるコードには更新できないためご注意ください。

やってみた

S3 側の作業

アップロード先バケットの作成から行う場合

Amazon S3 コンソールの「汎用バケット」から「バケットを作成」を選択します。

Upload the Lambda source code to S3 1

任意のバケット名を設定して「バケットを作成」を選択します。
※「バケット名」以外の項目は任意です

Upload the Lambda source code to S3 2

Amazon S3 コンソールの「汎用バケット」からアップロード先のバケットを選択します。

Upload the Lambda source code to S3 3

「アップロード」を選択します。

Upload the Lambda source code to S3 4

「ファイルを追加」からアップロードする ZIP ファイルを選択します。

Upload the Lambda source code to S3 5

「アップロード」を選択します。

Upload the Lambda source code to S3 6

アップロードが正常に完了したことを確認します。

Upload the Lambda source code to S3 7

アップロードしたファイルを選択します。

Upload the Lambda source code to S3 8

次の手順で使用するため「オブジェクト URL」をメモします。

Upload the Lambda source code to S3 9

Lambda 側の作業

Lambda コンソールから更新する Lambda 関数を選択します。

Upload the Lambda source code to S3 10

「コード」タブから「アップロード元」の「Amazon S3 の場所」の順に選択します。

Upload the Lambda source code to S3 11

「Amazon S3 のリンク URL」にメモした「オブジェクト URL」を設定して「保存」を選択します。

Upload the Lambda source code to S3 12

更新が正常に完了したことを確認します。
なお、サイズが大きい場合はインラインのコード編集ができなくなります。

Upload the Lambda source code to S3 13

参考資料

Lambda 関数の .zip ファイルアーカイブとしてのデプロイ - AWS Lambda

.zip ファイルアーカイブが 50 MB 未満の場合は、ローカルマシンから .zip ファイルアーカイブをアップロードできます。ファイルが 50 MB を超える場合は、Amazon S3 バケットから関数にファイルをアップロードします。

Lambda クォータ - AWS Lambda

250 MB レイヤーやカスタムランタイムなど、デプロイパッケージの内容の最大サイズ。(解凍済み)

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.