環境
- Lambda ( Python 3.11 )
- Amplify 12.14.0
- Node.js 20.9.0
- OS Windows11
問題
amplify mock function
を使用してLambdaを起動した際に、event.jsonに記載している日本語が文字化けしてしまう。
「あ」が「縺\udc82」に変換されてしまう。
調査
そもそもコマンドの起動で何が起きているのかの把握から始める。
Amplify CLIにて、コマンドの該当ファイルはこちら。
amplify-cli/packages/amplify-util-mock/src/commands/mock/function.ts at dev · aws-amplify/amplify-cli · GitHub
辿っていくと#resolveEventで処理をしている。
amplify-cli/packages/amplify-util-mock/src/func/index.ts at dev · aws-amplify/amplify-cli · GitHub
#readJsonで読みこんでいるようだ。
#readFileSyncでUTF-8で読みこんでいることまで確認。
amplify-cli/packages/amplify-cli-core/src/jsonUtilities.ts at dev · aws-amplify/amplify-cli · GitHub
even.jsonはUTF-8でエンコーディングされている。(VSCodeで確認済)
Node.jsもv18以降であれば問題がない
以上より、event.jsonの読み込みまでは正常。
Lambda起動もInvoker周りで読みこんでいるらしい。
なぜだー!
ご存じの方いらしたら教えてください...
2025年1月9日追記
AWS上では問題なく。
ローカルのWindows11の設定の問題かと思われる。