概要
$ sls deploy
が突然できなくなった。
($ serverless deploy
のことね)
エラー
エラー文はこんな感じでした
(もう手元には残ってなかったので、参考サイトに掲載されているエラー文を加工して貼り付けています)
$ sls deploy
.....
Uploaded file must be a non-empty zip (Service: AWSLambdaInternal; Status Code: 400; Error Code: InvalidParameterValueException; Request ID: xxxxxxxxxxxxxxxxxxxxx; Proxy: null)
原因
どうやら、node
のバージョンが15.6.0
などの新しいものになっていると、このエラーが発生するらしい。
ちなみに自分は...
Version
$ node -v
v15.6.0
$ serverless --version
Framework Core: 2.20.1
Plugin: 4.4.2
SDK: 2.3.2
Components: 3.5.1
はい、今日構築した環境にnodeをインストールしましたからね >_<;
対処法
やむなく、node
のバージョンを14.14.0
に下げてエラーを回避しました。
これで3時間は食った気がします.....
う~んもったいない
# こんな感じの手順を踏みました
$ nodenv install 14.14.0
$ nodenv global 14.14.0
$ npm install serverless
参考サイト
-
Github: aws / aws-cdk の issue#12536
aws-lambda: Uploaded Zips of Functions are Empty
ここを見ると、かなりの人が困っている様子でした。
しかしまだ治っていない...。(2021/01/24 18:46 現在) -
追記
2021/2/11
The fix will be available in the next release.
https://github.com/aws/aws-cdk/issues/12536#issuecomment-777288723
2/11のコメントに、「次のリリースで修正されるよ」と書いてあった。
その時点からすでに2~3回リリースされているので、そろそろ直っているかも...?