node_modules を含んだ AWS Lambda Layers を作成して Lambda 関数に追加する方法をご紹介します。
Lambda 関数から利用する node_modules を Lambda Layers に追加する方法を調べて検証しました。
AWS SDK for JavaScript を Node.js Lambda 関数に統合する
mkdir -p aws-sdk-layer/nodejs
cd aws-sdk-layer/nodejs
npm init
docker run --entrypoint "" \\
-v "$PWD":/var/task "public.ecr.aws/lambda/nodejs:14" \\
/bin/sh -c "npm install aws-sdk --save; exit"
zip -r ../package.zip ../
aws lambda publish-layer-version \\
--layer-name aws-sdk \\
--description "aws-sdk layer" \\
--license-info "MIT" \\
--compatible-runtimes nodejs14.x \\
--zip-file fileb://../package.zip \\
--region ap-northeast-1
aws lambda update-function-configuration \\
--function-name your-lambda-function \\
--layers arn:aws:lambda:ap-northeast-1:xxxxxx:layer:aws-sdk:1 \\
--region ap-northeast-1
mkdir -p google-cloud-bigquery-layer/nodejs
cd google-cloud-bigquery-layer/nodejs
docker run --entrypoint "" \\
-v "$PWD":/var/task "public.ecr.aws/lambda/nodejs:14" \\
/bin/sh -c "npm install --save @google-cloud/bigquery; exit"
zip -r ../package.zip ../
aws lambda publish-layer-version \\
--layer-name google-cloud-bigquery \\
--description "@google-cloud/bigquery layer" \\
--license-info "MIT" \\
--compatible-runtimes nodejs14.x \\
--zip-file fileb://../package.zip \\
--region ap-northeast-1
aws lambda update-function-configuration \\
--function-name your-lambda-function \\
--layers arn:aws:lambda:ap-northeast-1:xxxxxx:layer:google-cloud-bigquery:1 \\
--region ap-northeast-1
以上、Lambda Layers に node_modules を追加して Lambda 関数から利用したい、現場からお送りしました。