Terraform/GCP 错误:项目:未设置必填字段

mon*_*mon 14 google-cloud-platform terraform

问题

\n

google_project文档说project_id可选的。

\n
\n

project_id - (可选)项目 ID。如果未提供,则使用提供者项目。

\n
\n

然而,Terraform 抱怨这是必需的。

\n

gcp.tf

\n
data "google_project" "project" {\n}\n\noutput "project_number" {\n  value = data.google_project.project.number\n}\n
Run Code Online (Sandbox Code Playgroud)\n
 Error: project: required field is not set\n\xe2\x94\x82 \n\xe2\x94\x82   with data.google_project.project,\n\xe2\x94\x82   on gcp.tf line 1, in data "google_project" "project":\n\xe2\x94\x82    1: data "google_project" "project" {\n
Run Code Online (Sandbox Code Playgroud)\n

问题

\n

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

\n

解决方法

\n

设置 GOOGLE_PROJECT 环境变量。

\n
export GOOGLE_PROJECT=...\nterraform apply\n
Run Code Online (Sandbox Code Playgroud)\n

Daz*_*kin 19

您的“解决方法”在功能上与文档建议的内容相同。即provider project应该设置,即:

provider "google" {
  project = "..."
}
Run Code Online (Sandbox Code Playgroud)

您不包括您的provider配置,但我认为它project包括要使用的默认配置。

因此,要么|要么但是,您需要在某个地方定义默认项目。

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