メインコンテンツまでスキップ

AWS Lambda (Lambda) のパッケージング方法

1. パッケージの作成

まずはLambdaにデプロイするためのデプロイパッケージを作っていきましょう。 まずは npm install しておきます。

[ec2-user ~] cd serverless-backend-application-stack-nodejs/
[ec2-user ~] npm install

カタログ AMI の中には、パッケージを自動で作ってくれる Shell Script ( build-app.sh )が含まれています。 実行すると、以下のようにデプロイ用の zip ファイルが生成されいます。

# Shell Script の実行
./build-app.sh
  • .dist/api/sample-api.zip
  • .dist/event/sample-event.zip

2. デプロイ用バケット作成

LambdaのソースコードパッケージをS3バケットにアップロードしてCloudFormationから参照できるようにするため、専用のバケットを作成します。

[ec2-user ~] AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
[ec2-user ~] AWS_REGION=us-east-1
[ec2-user ~] BUCKET_NAME="lambda-code-bucket-${AWS_REGION}-${AWS_ACCOUNT_ID}"

[ec2-user ~] aws s3api create-bucket \
--bucket $BUCKET_NAME \
--region $AWS_REGION \
--create-bucket-configuration "LocationConstraint=<your region>" # us-east-1 以外に作成する場合はこのオプションを付けてください

3. デプロイパッケージとS3へのアップロード

作成済みのバケットにソースコードのパッケージをアップロードします

[ec2-user ~] aws s3 cp .dist/api/sample_api.zip s3://$BUCKET_NAME
[ec2-user ~] aws s3 cp .dist/event/sample_event.zip s3://$BUCKET_NAME