使 Terraform 资源键多行
Posted
技术标签:
【中文标题】使 Terraform 资源键多行【英文标题】:Make Terraform resource key multiline 【发布时间】:2020-06-28 12:17:49 【问题描述】:我在 Terraform 中声明了一个 google_logging_metric
资源(使用版本 0.11.14
)
我有以下声明
resource "google_logging_metric" "my_metric"
description = "Check for logs of some cron job\t"
name = "mycj-logs"
filter = "resource.type=\"k8s_container\" AND resource.labels.cluster_name=\"$local.k8s_name\" AND resource.labels.namespace_name=\"workable\" AND resource.labels.container_name=\"mycontainer-cronjob\" \nresource.labels.pod_name:\"my-pod\""
project = "$data.terraform_remote_state.gke_k8s_env.project_id"
metric_descriptor
metric_kind = "DELTA"
value_type = "INT64"
有没有办法让filter
字段变成多行?
local
变量 "$local.k8s_name
的存在使它有点挑战。
【问题讨论】:
terraform.io/docs/configuration-0-11/variables.html#strings 我通过谷歌搜索发现terraform multiline string
我的部分问题是这部分=\"$local.k8s_name\"
是否被正确解析
【参考方案1】:
来自the docs
字符串值很简单,表示值映射的基本键 其中键是变量名。一个例子是:
variable "key" type = "string" default = "value"
可以使用 heredoc 语法提供多行字符串值。
variable "long_key" type = "string" default = <<EOF This is a long key. Running over several lines. EOF
【讨论】:
【参考方案2】:以下格式是推荐的方式。
variable "key"
type = string
default = "value"
# A multi-line string value can be provided using heredoc syntax.
variable "long_key"
type = string
default = <<EOF
This is a long key.
Running over several lines.
EOF
【讨论】:
以上是关于使 Terraform 资源键多行的主要内容,如果未能解决你的问题,请参考以下文章
Terraform 会根据运行时环境不断更改多行 heredoc 的行尾
如何使 Terraform archive_file 资源获取对源文件的更改?