😄

Terraformで発生した凡ミスによるエラー2「SSM name specified for secret is invalid.」

に公開

Terraformで発生した凡ミスによるエラー2「The Systems Manager parameter name specified for secret is invalid.」with "/"」

terraformでtask definitionのsecretにssmの値を読み込むように設定した時に発生した

※タイトルは文字数の都合上、エラー文を省略してあります。

The Systems Manager parameter name specified for secret xxx is invalid. The parameter name can be up to 2048 characters and include the following letters and symbols: a-zA-Z0-9_.-,

シークレット値のssmは下記のように渡している。

# ssmのアウトプット
output "rds_host_ssm" {
  value = aws_ssm_parameter.rds_endpoint.value
}

# task definition
secrets     = [
    {
      "name" : "DB_HOST",
      "valueFrom" : var.rds_host_ssm
    }
]

原因

エラーを調べたら、ssmのname(参照先)を指定するべきでssmの値を渡すべきではない。タイプミスだった。

# ssmのアウトプット
output "rds_host_ssm" {
-   value = aws_ssm_parameter.rds_endpoint.value
+   value = aws_ssm_parameter.rds_endpoint.name
}

# task definition
secrets     = [
    {
      "name" : "DB_HOST",
      "valueFrom" : var.rds_host_ssm
    }
]

最後に

間違っていることがあれば、コメントに書いていただけると幸いです。
よろしくお願いいたします。

GitHubで編集を提案

Discussion