首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云功能模块平台

云功能模块平台
EN

Stack Overflow用户
提问于 2022-04-11 08:20:19
回答 1查看 356关注 0票数 2

我对terraform比较陌生,我试图创建一个工作模块,它可以同时旋转多个云功能。为我抛出错误的部分是我动态调用事件触发器的地方。我在下面写了一个粗略的代码。有人能告诉我我做错了什么吗?

Main.tf

代码语言:javascript
复制
resource "google_cloudfunctions_function" "event-function" {
  for_each = var.cloudfunctions
  project              = local.test_project
  region               = lookup(local.regions,"use1")
  name                 = format("clf-%s-%s-use1-%s-%s", var.domain, var.env, var.use_case, each.key)
  description          = format("clf-%s-%s-use1-%s-%s", var.domain, var.env, var.use_case, each.key)
  #source_directory     = "${path.module}/${each.value}}
  #bucket_force_destroy = var.bucket_force_destroy
  entry_point          = each.value.entry_point
  runtime              = each.value.runtime
  #vpc_connector        = "projects/${var.host_project}/locations/${var.region}/connectors/${var.vpc_connector_prefix}-${var.environment}-test"
 
 dynamic event_trigger {
    for_each = [ for i in each.value.event_trigger : lookup(local.event_trigger,i.event_name,i.resource) ]
    content {
        event_type          = event_trigger.value.event_type
        resource            = event_trigger.value.resource
      }
  }

Variables.tf

代码语言:javascript
复制
variable "cloudfunctions" {
  type = map(object({
  runtime       = string
  event_trigger = list(object({
    event_type = string
    resource = string

   }))
  }))
  default = {}
}

Locals.tf

代码语言:javascript
复制
42.event_trigger = flatten ([
43.     for i,n in var.cloudfunctions :[
44.     for event in n.event_trigger :{
45.        event_type = event_type
46.     resource   = resource

       }
     ]
  ])

}

误差

代码语言:javascript
复制
 on locals.tf line 44, in locals:
│   44:         event_type = event_type
│ 
│ A reference to a resource type must be followed by at least one attribute
│ access, specifying the resource name.
╵
╷
│ Error: Invalid reference
│ 
│   on locals.tf line 45, in locals:
│   45:         resource   = resource
│ 
│ The "resource" object must be followed by two attribute names: the resource
│ type and the resource name.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-11 10:15:16

你的event_triggern。因此,您的event_trigger应该是:

代码语言:javascript
复制
  event_trigger = flatten ([
     for i,n in var.cloudfunctions :[
       for event in n.event_trigger: {
        event_type = event.event_type
        resource   = event.resource
       }
     ]
  ])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71824671

复制
相关文章

相似问题

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