Terraform/GCP Error: project: required field is not set

Terraform/GCP Error: project: required field is not set

问题

google_project 文档说 project_id 是可选的。

project_id - (Optional) The project ID. If it is not provided, the provider project is used.

但是,Terraform 抱怨它是必需的。

gcp.tf

data "google_project" "project" {
}

output "project_number" {
  value = data.google_project.project.number
}
 Error: project: required field is not set
│ 
│   with data.google_project.project,
│   on gcp.tf line 1, in data "google_project" "project":
│    1: data "google_project" "project" {

问题

请帮助理解这是否是一个文档缺陷并且该参数实际上是强制性的。

解决方法

设置 GOOGLE_PROJECT 环境变量。

export GOOGLE_PROJECT=...
terraform apply

您的 'Workaround' 在功能上等同于文档建议的内容。即应该设置 provider project,即:

provider "google" {
  project = "..."
}

您没有包含 provider 配置,但我认为,它 包含要使用的默认 project

所以,要么|要么但是,您需要在某处定义默认项目。

否则,您应该会收到错误消息。