Terraform - 创建触发器时出错:googleapi:错误 400:请求包含无效参数

问题描述 投票:0回答:1

我正在尝试使用 资源“google_cloudbuild_trigger”使用 Terraform 创建 Google CloudBuild 触发器。

但我不知道我的配置出了什么问题。

我收到以下错误:

 {
   "error": {
     "code": 400,
     "message": "Request contains an invalid argument.",
     "status": "INVALID_ARGUMENT"
   }
 }
---
Error: Error creating Trigger: googleapi: Error 400: Request contains an invalid argument.
│ 
│   with module.cloudbuild.google_cloudbuild_trigger.repository_trigger,
│   on modules/google/cloud_build/cloudbuild.tf line 34, in resource "google_cloudbuild_trigger" "repository_trigger":
│   34: resource "google_cloudbuild_trigger" "repository_trigger" {
│ 

我的资源是这样写的:

resource "google_cloudbuild_trigger" "repository_trigger" {
  name = "${var.prefix}--repository-trigger"
  project = var.project_id
  location = var.main_google_region
  service_account = "projects/${var.project_id}/serviceAccounts/${data.google_project.project.number}@cloudbuild.gserviceaccount.com"

  repository_event_config {
    repository = google_cloudbuildv2_repository.repository.id
    push {
      branch = "^main$"
    }
  }
  include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
  filename = "cloudbuild.yaml"
  substitutions = {
   ADMIN_MAINTAINANCE_EMAIL = "...",
   ...
  }
}

terraform实际发送的请求是:

 POST /v1/projects/project-756385/locations/europe-west9/triggers?alt=json HTTP/1.1
 Host: cloudbuild.googleapis.com
 User-Agent: Terraform/1.8.0 (+https://www.terraform.io) Terraform-Plugin-SDK/2.33.0 terraform-provider-google/5.24.0
 Content-Length: 2297
 Content-Type: application/json
 Accept-Encoding: gzip

 {
  "filename": "cloudbuild.yaml",
  "includeBuildLogs": "INCLUDE_BUILD_LOGS_WITH_STATUS",
  "name": "terraform--repository-trigger",
  "repositoryEventConfig": {
   "push": {
    "branch": "^main$"
   },
   "repository": "projects/project-756385/locations/europe-west9/connections/terraform--github-connection/repositories/terraform--repository"
  },
  "serviceAccount": "projects/project-756385/serviceAccounts/[email protected]",
  "substitutions": {
   "ADMIN_MAINTAINANCE_EMAIL": "...",
   ....
  }
 }
terraform google-cloud-build terraform-provider-gcp
1个回答
0
投票

资源“google_cloudbuild_trigger”中的

substitutions' 键必须以下划线开头 (_
)。

此要求在

Google API 文档中指定

田野替代品
map(键:字符串,值:字符串) 构建资源的替换。
键必须匹配以下正则表达式:^_[A-Z0-9_]+$。
© www.soinside.com 2019 - 2024. All rights reserved.