ServerlessFrameworkでserverless-webpackプラグインを使用してLambda(node.js)をバンドルしてデプロイする

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を実行します。

ServerlessFrameworkでserverless-webpackプラグインを使用してLambda(node.js)をバンドルしてデプロイする

1ファイルにバンドルされていることが確認できます。

youtube

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました