1

我为 terraform 定义了以下资源来创建云功能。我希望能够通过 pubsub 消息触发它。
我使用哪个块?event_trigger 或 trigger_topic

resource "google_cloudfunctions_function" "function" {

    name                      = var.appname
    entry_point               = "entry"
    available_memory_mb       = 128
    timeout                   = 120
    project                   = var.gcpproject
    region                    = var.region
    #trigger_topic             = "projects/${var.gcpproject}/topics/cloud-builds-topic"**
    source_archive_bucket     = var.google_storage_bucket
    source_archive_object     = "code/${var.appname}.zip"
    runtime     = "python3.7"
   #event_trigger = {
   #   event_type= "google.pubsub.topic.publish"
   #   resource= "projects/${var.gcpproject}/topics/cloud-builds-topic"
   #   service= "pubsub.googleapis.com"
   #   failure_policy= {}
   # }
}

当我使用 trigger_topic 时,它会出错

Error: Unsupported argument

  on main.tf line 12, in resource "google_cloudfunctions_function" "function":
  12:     trigger_topic             = "projects/${var.gcpproject}/topics/cloud-builds-topic"

An argument named "trigger_topic" is not expected here.

当我使用 event_trigger 时,它会出错

Error: Unsupported argument

  on main.tf line 16, in resource "google_cloudfunctions_function" "function":
  16:     event_trigger = {

An argument named "event_trigger" is not expected here. Did you mean to define
a block of type "event_trigger"?
4

1 回答 1

3

没有像google_cloudfunctions_functiontrigger_topic这样的属性或块。

event_trigger应该是,而不是地图(否=):

   event_trigger {
      event_type= "google.pubsub.topic.publish"
      resource= "projects/${var.gcpproject}/topics/cloud-builds-topic"
      service= "pubsub.googleapis.com"
      #failure_policy= {}
   }

failure_policy也是块,不是地图。service似乎不是event_trigger块中的正确属性。请仔细检查有关有效属性和块的文档。

于 2020-12-25T00:25:19.323 回答