AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

シークレットマネージャを使う時は valueFrom だ!

タイトルがすべてシリーズ。

missing required field

シークレットマネージャから読み出す環境変数を追加したので、ECS のタスク定義を更新したらエラーになった。

│ Error: failed creating ECS Task Definition (stg-example-ecs-task-definition-backend): InvalidParameter: 2 validation error(s) found.
│ - missing required field, RegisterTaskDefinitionInput.ContainerDefinitions[1].Secrets[4].ValueFrom.
│ - missing required field, RegisterTaskDefinitionInput.ContainerDefinitions[2].Secrets[4].ValueFrom.
│
│
│   with aws_ecs_task_definition.backend,
│   on ecs.tf line 145, in resource "aws_ecs_task_definition" "backend":
│  145: resource "aws_ecs_task_definition" "backend" {

あーはん?

ちなみに ContainerDefinitions[1] ContainerDefinitions[2] となっているのは、 app コンテナと sidekiq コンテナが存在しており、それぞれに同様の追加をしたから。

value ではない

最初はパラメータストアに素朴にセットしていたので "value" : で呼び出していたのだけど、これ暗号化しとかないとダメなやつじゃん? となり、その後移動させたのだった。

その際にタスク定義内でもコピペしてしまい、 "valueFrom" : に修正するのを忘れていたとさ、というお話でした。

タスク定義の抜粋
ぺけ
      {
        "name" : "VALUE",
        "value" : "${ecs_app_secret_value}"
      }

おっけー
      {
        "name" : "VALUE",
        "valueFrom" : "${ecs_app_secret_value}"
      }