[AWS CLI] aws lambda invoke を実行すると、Invalid base64: *** というエラーが出る場合の対処方法

AWS CLI のバージョン 2 で aws lambda invoke を実行するときに、Invalid base64: *** というエラーが出る場合、--payload オプションに base64 エンコードした文字列を渡していないことが原因である可能性があります。AWS CLI のバージョン 2 からは、blob 型で値を受け取るオプションは、base64 エンコードされた文字列とする必要があります。そのため、base64 エンコードして値を指定するか、一時的に base64 エンコードしていない値でも受け付けてくれるようにする --cli-binary-format raw-in-base64-out オプションを追加します。

下記は base64 エンコードした値を渡すようにした例です。

aws lambda invoke --function example-function --payload `echo 'dummy' | base64` outfile.json

次に、下記は --cli-binary-format raw-in-base64-out オプションを使う例です。

aws lambda invoke --cli-binary-format raw-in-base64-out --function-name example-function --payload 'dummy' outfile.json