ServerlessFrameworkでserverless-webpackプラグインを使用してLambda(node.js)をバンドルしてデプロイする
serverless packageコマンドでzipファイルを作成するとファイルサイズか大きくなってしまいます。
serverless-webpackプラグインを使用して1ファイルにバンドルします。
serverless plugin install --name serverless-webpack
これで、package.jsonのdevDependenciesに追加され、serverless.ymlのプラグイン部分にも1行追記されます。
plugins: - serverless-webpack
webpack.config.js
プロジェクト直下にwebpack.config.jsを作成します。
module.exports = {
target: 'node',
mode: 'none'
}
modeをproductionにすれば1行のjsファイルにバンドルされます。
serverless.yml
service: sample
frameworkVersion: '3'
package:
individually: true
exclude:
- src/**
include:
- src/common/**
excludeDevDependencies: true
provider:
name: aws
runtime: nodejs16.x
stage: dev
region: ap-northeast-1
functions:
helloxxx:
handler: src/lambda1.hello
package:
individually: true
include:
- src/lambda1.js
helloyyy:
handler: src/lambda2.hello
package:
individually: true
include:
- src/lambda2.js
plugins:
- serverless-webpack
sls deploy
これでserverless deployを実行します。
1ファイルにバンドルされていることが確認できます。
youtube

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント