zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

CodePipelineを経由した場合にtaskdefinitionに含まれる環境変数のマルチバイト値がエラー判定される

【結論】

2020年12月末現在、CodePipelineを経由した場合にtaskdefinitionに含まれる環境変数のマルチバイト値がエラー判定される問題は回避できない。

AWSへの問い合わせ】

現在ecsのタスク定義ファイルを手動で作成しておりますが、以下のように環境変数に全角文字を使用したいと考えております。

"environment": [
{
"name": "HOGE_USE_FUGA",
"value": "日本語API"
}, (略)

この状態のtaskdef.jsonをartifactとした場合に、
CodePipelineでは

無効なアクション設定
Failed to validate the task definition. Check the task definition in the
"TaskDefinitionTemplateArtifact" parameter for your pipeline action
and verify the configuration details for the ECS service.

の様なエラーとなってタスク定義が登録されません。

"environment": [
{
"name": "HOGE_USE_FUGA",
"value": "hogefuga"
}, (略)

のように半角英数にした場合はPipelineでのチェックは通っているのですが、
taskdefinitionjsonでは全角文字列が利用できないのでしょうか?
(WebUIからタスク定義を作成する際にJSONを直接編集する分には通っています)

AWSからの回答抜粋】

現時点において CodeDeployToECS アクションにはタスク定義中のコンテナ定義において環境変数にマルチバイト文字を使用するとエラーとなる問題が確認されております。
問題が修正されるまでの間は環境変数にはシングルバイト文字を使用するか、または CodeDeployToECS アクション以外の方法でタスク定義を更新いただけますようお願い申し上げます。

とのこと。残念。