awscliの’ascii’ codec can’t encode characterを解決する | memoTech

awscliの’ascii’ codec can’t encode characterを解決する

エラーメッセージ設定・構築・運用

設定内容の一覧を取得するときなど、awscliが便利な場面はいくつもあります。
awscliでCloudwatch Alarmの一覧を取得しようとしてエラーになったので、その解決方法を記しておきます。

日本語でdescriptionを書くとエラーになる?

どうやら、日本語を出力しようとしてエラーになるようです。

'ascii' codec can't encode character XXX

というエラーメッセージが出て、出力が途切れてしまいます。

環境変数LC_ALLを設定する

ググってもなかなかまともな回答が見つからなかったのですが、ありました。

AWS Command Line Interface (CLI): Best Practises | Scalingbits
Use an UTF locale when using AWS CLI on Unix/Linux There are AWS strings which can be coded in Unicode. These are at least EC2 tags and volume tags. Unix/Linux ...

環境変数LC_ALLにen_US.UTF-8を設定すると。
awscliのdocker imageを使うと、

docker run -v /$(pwd)/.aws:/root/.aws:ro -e LC_ALL=en_US.UTF-8 amazon/aws-cli --profile プロファイル名 ...

みたいになるでしょう。
日本語だと、ja_JP.UTF-8って設定するのが適切かもしれません。Descriptionは気にしなかったので、en_USでやってしまいました。

ロケールは鬼門

このエラーメッセージ、Pythonでロケールがよろしくなかったときのメッセージですね。覚えておくと、役立ちそうです。

この記事へのコメント

Loading Facebook Comments ...

No Trackbacks.

タイトルとURLをコピーしました