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(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント