荒々しくない荒のブログ

日記・技術ブログ

amplify mock function で起動して、読み込んだevent.json内の日本語が文字化けする

 

環境

  • 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.jsonUTF-8エンコーディングされている。(VSCodeで確認済)

Node.jsもv18以降であれば問題がない

以上より、event.jsonの読み込みまでは正常。

Lambda起動もInvoker周りで読みこんでいるらしい。

なぜだー!

ご存じの方いらしたら教えてください...

 

2025年1月9日追記

AWS上では問題なく。

ローカルのWindows11の設定の問題かと思われる。