我正在尝试使用 资源“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": "...",
....
}
}
资源“google_cloudbuild_trigger”中的
substitutions
' 键必须以下划线开头 (_
)。此要求在
map(键:字符串,值:字符串) 构建资源的替换。 键必须匹配以下正则表达式:^_[A-Z0-9_]+$。 |