The Serverless version (3.xx.x) does not satisfy the "frameworkVersion" (2) in serverless.yml が発生した場合の対応方法
発生した事象
過去に Serverless Framework で開発したプログラムに手を入れようとした際、以下のエラーが発生した。
$ sls invoke local --function test
Environment: darwin, node 16.17.1, framework 3.23.0, plugin 6.2.2, SDK 4.3.2
Docs: docs.serverless.com
Support: forum.serverless.com
Bugs: github.com/serverless/serverless/issues
Error:
The Serverless version (3.23.0) does not satisfy the "frameworkVersion" (2) in serverless.yml
解決方法
"frameworkVersion" (2) in serverless.yml
というエラーならば
$ npm i serverless@2
"frameworkVersion" (1) in serverless.yml
というエラーならば
$ npm i serverless@1
原因
現在の Serverless Framework の最新バージョンは 3
である。
そのため、最近 Serverless Framework を 公式の手順 通りインストールしたのであれば、下記コマンドによって Serverless Framework 3
が global にインストールされているはず。
$ npm install -g serverless
しかし、Serverless Framework 3
では 過去の 2
や 1
で作成されたプロジェクトを扱うことができないということで、上記のエラーが発生する。
そのため、本エラーが発生する(つまり過去のバージョンで作成した)プロジェクトで引き続き sls
コマンドで動作確認やデプロイを行いたい場合、そのプロジェクト内においてのみ過去の Serverless Framework 2
を使用するようにすれば良いということになる。上記の 解決方法 に記述したコマンドは、それを実現する。