AWS CLIバージョン2を使いだしたらlambda invokeが出来なくなった話

何をしたかったのか
macOSから下記のようなシェルスクリプトでLambda関数を実行しようとしたのですが、 AWS CLIのバージョンを1から2にアップデートしたところ、突如としてエラーを吐くようになってしまいました。
aws lambda invoke --invocation-type Event \
--function-name HogeFugaLambdaFunction \
--region ap-northeast-1 \
--payload '{ "hoge": "fuga" }' \
--log-type Tail \
outputfile.txt
何故動かなかったのか
AWS CLI バージョン 2 はデフォルトで base64 エンコードされた文字列としてバイナリパラメータを渡すようになりました https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cliv2-migration.html#cliv2-migration-binaryparam
AWS公式からしっかりアナウンスされていました。
今まではLambdaへ渡すjsonは単純に文字列指定していたのですが、base64エンコードが必要になったようです。
修正後
macOSでbase64エンコードする場合はecho '******' | base64を実行します。
aws lambda invoke --invocation-type Event \
--function-name HogeFugaLambdaFunction \
--region ap-northeast-1 \
--payload $(echo '{ "hoge": "fuga" }' | base64) \
--log-type Tail \
outputfile.txt
他の手段
~/.aws/config ファイルに追記する
configファイルに追記することで、AWS CLIをバージョン1の挙動に戻すことが可能です。
~/.aws/config
cli_binary_format=raw-in-base64-out
コマンドに追記する
実行するコマンドに下記を付与して、AWS CLIをバージョン1の挙動に戻すこともできるようです。
--cli-binary-format raw-in-base64-out
以外にもググってすぐに答えが探し出せずに悩みました。