sls invoke で No module named '〜'
環境
すべて(3台とも) macOS 11.4(Big Sur) ※当時最新
経緯
ローカルでserverlessのテストをしたくて sls invoke しているのに、挙動がおかしい。
No module named '〜' と言われているモジュールはインストール済なのに、エラーになる。
複数のマシンで検証した。 serverless.yml は同一。
- 動かない方
% SLS_DEBUG=* sls invoke local -f some-function -p test.json
(略)
Serverless: Load command test
Serverless: Load command dashboard
Serverless: Invoke invoke:local
Serverless: Invoke package
Serverless: Invoke aws:common:validate
Serverless: Invoke aws:common:cleanupTempDir
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Excluding development dependencies...
Serverless: Excluding development dependencies...
Serverless: Invoke aws:package:finalize
Serverless: Invoke aws:common:moveArtifactsToPackage
Serverless: Building Docker image...
START RequestId: c05aed50-9250-1e9a-cce0-73e5d255e79b Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module '***': No module named '***'
{"errorType":"Runtime.ImportModuleError","errorMessage":"Unable to import module '***': No module named '***'"}
Serverless: Invoke invoke:local
までで終わるはずが、なぜかパッケージしだしてる……?
- 動く方
Serverless: Load command studio
Serverless: Load command dev
Serverless: Invoke invoke:local
(動いているところは略)
バージョンがかなり違った。3台中2台動かない。
- 動かない方(1)
Framework Core: 1.56.1
Plugin: 3.2.1
SDK: 2.2.0
Components Core: 1.1.2
Components CLI: 1.4.0
- 動かない方(2)
Framework Core: 1.56.1
Plugin: 3.8.4
SDK: 2.3.2
Components Core: 1.1.2
Components CLI: 1.4.0
Framework Coreは同じだが、PlugnとSDKはかなり違う。
- 動く方
Framework Core: 1.83.2 (local)
Plugin: 3.8.4
SDK: 2.3.2
Components: 2.34.9
動かない方はずいぶん古いので、バージョンアップした。
% npm update serverless
(略)
┌───────────────────────────────────────────────────┐
│ │
│ Serverless Framework successfully installed! │
│ │
│ To start your first project run 'serverless'. │
│ │
└───────────────────────────────────────────────────┘
+ [email protected]
動く方より新しくなった。
% sls -v
Serverless: Running "serverless" installed locally (in service node_modules)
Framework Core: 1.83.3 (standalone)
Plugin: 3.8.4
SDK: 2.3.2
Components: 2.34.9
Components Core と Components CLI が Components 1行になった。
再度、実行してみる。
Serverless: Load command studio
Serverless: Load command dev
Serverless: Invoke invoke:local
(動いているところは略)
うーん、動いたので嬉しいけど、何か釈然としないなぁ……
結論?
バージョンが古いようなら、新しくすると良いかも🍙
Author And Source
この問題について(sls invoke で No module named '〜'), 我々は、より多くの情報をここで見つけました https://qiita.com/takepan/items/cd19ef7fe8bb263af2e6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .