Serverless Webpack の Legacy configuration detected 対応

Serverless Webpack で、古い設定が存在するというメッセージが表示されていたので、対応したメモ。

Serverless: Legacy configuration detected. Consider to use "custom.webpack" as object (see README).

内容が分かりづらいのですが、何らかの項目を custom.webpack 以下に入れろとのこと。

対応

Serverless Webpack の README を眺めると、custom.webpackIncludeModulescustom.webpack.includeModules に移動されていました。 遅くとも 2018/3 には名前が変わっており、参考にした情報が古かったようです。

github.com

変更前:

custom:
  webpackIncludeModules: true
  webpack:
    # ...

以下のように変更したところ、メッセージが表示されなくなりました。

custom:
  webpack:
    includeModules:
      forceExclude:
        - aws-sdk
    # ...

ついでに aws-sdk をビルド対象から除外する

forceExclude オプションで aws-sdk を指定することで、ビルド対象から除外しました。 README に記載がありますが、AWS Lambda では aws-sdk が利用できる状態になっているためです。

https://github.com/serverless-heaven/serverless-webpack#aws-sdk

これによって、自分の環境では、デプロイパッケージのサイズが 9.3 MB から 2.5 MB まで削減できました。