首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在google_logging_metric资源中使用格式函数

如何在google_logging_metric资源中使用格式函数
EN

Stack Overflow用户
提问于 2021-04-20 17:09:45
回答 1查看 292关注 0票数 1

我的要求是使cluster_name和命名空间发生变化,并在google_logging_metric资源中使用。

我的tfvars文件:

代码语言:javascript
复制
log_based_metrics = [
  {
    name = "name1",
    filter = "resource.type=\"k8s_pod\"\njsonPayload.kind=\"Event\"\nresource.labels.cluster_name=\"%s\"\njsonPayload.message:\"something\"\njsonPayload.involvedObject.namespace=\"%s\"",   << here I used %s for cluster name and namespace within filter>>
    metric_kind = "DELTA",
    value_type = "INT64"
  }
]

我的资源文件:

代码语言:javascript
复制
    resource "google_logging_metric" "logging_metric" {
      for_each = { for inst in var.log_based_metrics : inst.name => inst }
      name = each.value.name
      filter = "${format("${each.value.filter}",var.cluster_name,var.namespace)}"      
 *<< here when I am using each.value.filter inside format ,it is giving error , instead if I am replacing it with actual value from tfvars file it is not giving any error >>*    
      metric_descriptor {
        metric_kind = each.value.metric_kind
        value_type = each.value.value_type
        dynamic "labels" {
          for_each = each.value.labels
          content {
            key = labels.value["label_key"]
            value_type = labels.value["label_value_type"]
            description = labels.value["label_description"]
          }
        }
代码语言:javascript
复制
Error: Invalid function argument

  on log_based_metrics.tf line 4, in resource "google_logging_metric" "logging_metric":
   4:   filter = "${format("${each.value.filter}",var.cluster_name,var.namespace)}"
    |----------------
    | var.cluster_name is "cluster-5"

Invalid value for "args" parameter: too many arguments; no verbs in format
string.

当我在格式(即"resource.type="k8s_pod"\njsonPayload.kind="Event"\nresource.labels.cluster_name="%s"\njsonPayload.message:"something"\njsonPayload.involvedObject.namespace="%s“)中使用each.value.filter值时,它没有产生任何错误,如何使用格式函数中的tfvars文件中的变量??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-21 11:36:15

我认为应该是:

代码语言:javascript
复制
 filter = format(each.value.filter,var.cluster_name,var.namespace)      

基本上就像你在最初的问题中一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67183400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档