При развертывании функции Google Cloud от Terraform получено сообщение «Ошибка 400: в запросе есть ошибки, badRequest» - PullRequest
2 голосов
/ 04 мая 2019

Я хочу развернуть облачную функцию от Terraform, но она не удалась.

export TF_LOG=DEBUG
terraform init
terraform plan # it does not fail
terraform apply # this fail

{
  "error": {
    "code": 400,
    "message": "The request has errors",
    "errors": [
      {
        "message": "The request has errors",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}

Что я устал

  • Я попытался изменить триггер на HTTP, но развертывание также не удалось.
  • включить TF_LOG
  • сделать terraform plan но это удалось

шаблон terraform

ниже мой файл main.tf

resource "google_pubsub_topic" "topic" {
  name    = "rss-webhook-topic"
  project = "${var.project_id}"
}


resource "google_cloudfunctions_function" "function" {
  name                = "rss-webhook-function"
  entry_point         = "helloGET"
  available_memory_mb = 256
  project             = "${var.project_id}"

  event_trigger {
    event_type = "google.pubsub.topic.publish"
    resource   = "${google_pubsub_topic.topic.name}"
  }

  source_archive_bucket = "${var.bucket_name}"
  source_archive_object = "${google_storage_bucket_object.archive.name}"
}

data "archive_file" "function_src" {
  type        = "zip"
  output_path = "function_src.zip"

  source {
    content  = "${file("src/index.js")}"
    filename = "index.js"
  }
}

resource "google_storage_bucket_object" "archive" {
  name       = "function_src.zip"
  bucket     = "${var.bucket_name}"
  source     = "function_src.zip"
  depends_on = ["data.archive_file.function_src"]
}

окружающая среда

Версия Terraform: 0.11.13
Go runtime версия: go1.12 + provider.archive v1.2.2 + provider.google v2.5.1

1 Ответ

0 голосов
/ 15 мая 2019

свойство "runtime" обязательно.

ниже работает.

resource "google_cloudfunctions_function" "function" {
  name                = "rss-webhook-function"
  entry_point         = "helloGET"
  available_memory_mb = 256
  project             = "${var.project_id}"
  runtime             = "nodejs8"

  event_trigger {
    event_type = "google.pubsub.topic.publish"
    resource   = "${google_pubsub_topic.topic.name}"
  }

  source_archive_bucket = "${var.bucket_name}"
  source_archive_object = "${google_storage_bucket_object.archive.name}"
}


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...