如何在默认值中合并变量?

时间:2019-05-02 15:32:28

标签: terraform

我有以下代码段,目标是创建一个随机ID并将其用于命名项目。

  7 resource "random_id" "ent_id" {
  8     byte_length = 8
  9 }
 10
 23 variable "project_name" {
 24         type = "string"
 25         default = "proj-$${random_id.ent_id.hex}"
 26         description = "Name of the service project"
 27 }


在语法上看起来不错,但是当我运行init时,我得到了-

Error: module.folder.google_project.new_project: "proj-$${random_id.ent_id.hex}" name must be 4 to 30 characters with lowercase and uppercase letters, numbers, hyphen, single-quote, double-quote, space, and exclamation point.

我在这里错过了什么吗?是字符串“ proj-$$ {random_id.ent_id.hex}”的错误,还是该表达式的结果(或至少打算出现),例如“ proj-b7bb04fde7253b14”

请注意,表达式中的“ $$”是由于这个原因-https://github.com/hashicorp/terraform/issues/18069

1 个答案:

答案 0 :(得分:0)

由于我对Terraform还是很陌生,因此不确定我是否正确理解了该问题,但是对我来说,$$将由$代替而不是对内容进行插值。您最终将得到一个变量值为“ proj-$ {random_id.ent_id.hex}”的变量,而不是预期的proj-XXXXXXXX,其中XXXXXXXX是您的随机ID。