AWSにSAM(Serverless Application Model) CLIというのがあります。ざっくり説明するとLambdaをローカルで動かせるようにするやつです。
Windows版はご丁寧にインストーラで提供されているのですが、入れて動かなくなったので直し方のメモです。将来のバージョンでは直るかもしれない。
具体的には、次のエラーが出て動きません。
PS C:\Users\taiko> sam --version '""' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
sam
の実態はC:\Program Files\Amazon\AWSSAMCLI\bin\sam.cmd
にあります。*1
中身を見てみるとSAM CLIに付いているPythonを使うか既にインストールされているPythonを使うか判定している部分で転けている様子。
今回はSAM CLIに付いてきたPythonを使うので、26行目あたりにあるパスを最初から変数に入れてしまいます。
@echo OFF REM=""" setlocal set PythonExe="%~dp0/../runtime/python.exe"
これで解決。めでたしめでたし。
PS C:\Users\taiko> sam --version SAM CLI, version 0.10.0
*1:64bit版の場合