現象
AWS CLI version 2でlambda invokeしたら、動くはずなのにコケる。payloadがおかしい?
$ aws lambda invoke --function-name my-function --payload '{ "key": "value" }' response.json
Invalid base64: "{"key": "value"}"
解決策
--cli-binary-format raw-in-base64-out
をつけましょう
原因
AWS CLI バージョン2では、パラメータはbase64エンコードが前提になったのでエラーになる。
AWS CLI バージョン 2 は、デフォルトではすべてのバイナリ入力パラメータとバイナリ出力パラメータを base64 エンコード文字列として渡すようになりました。