うさぎ駆動開発

UWP, Xamarin.Macを中心によしなしごとを書いていきます。

Windows で AWS Lambda デプロイしてドはまりした話

AWS Lambda にデプロイするのに,以下のサイトのように gulpfile でやることにしています。

dev.classmethod.jp

要は

  1. js, node_modules をコピー
  2. zip にまとめる
  3. デプロイ

という段階を踏むのですが,とある関数がWindows環境からデプロイしたときだけ実行に失敗することに気づきました。曰く,require を解決しようとしたがそんなファイルはないと。

展開してみるとファイル構造は変わっておらず,しばらくハマりました。

エクスプローラで同じようにZIPを作ってマネジメントコンソールからデプロイするときちんと動く。ということは gulp-zip がおかしいのではないかと思い至りました。

ということで,Windows 環境からもデプロイされる可能性がある場合は gulp-archive-generator を使うといいです。

github.com

gulp-zip の代わりに差し替えてすぐ使えます。以前は gulp-zip の issue にパーミッションの話題が出ていたのでそれかとも思ったのですがどうやらそれとは違うようで…。もう少し調べてみたいです。