You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Google Cloud平台下Terraform的google及google-beta提供商所有可用资源类型列表?

解决Terraform无法列出Google/Google-beta提供商资源类型的问题

我懂你现在的困扰——想查看Google和google-beta这两个Terraform提供商的所有可用资源类型,但用terraform providers schema命令没得到预期结果。问题根源其实很简单:你的main.tf是空的,Terraform根本没识别到要加载这两个提供商,所以才返回了空的schema结构。

下面是具体的解决步骤:

步骤1:在main.tf中声明所需提供商

先编辑你的main.tf,添加Google和google-beta的提供商配置(不需要复杂参数,只要声明即可):

terraform {
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 4.0" # 可指定你需要的版本,或用"latest"获取最新版
    }
    google-beta = {
      source  = "hashicorp/google-beta"
      version = "~> 4.0"
    }
  }
}

# 可选:如果需要绑定GCP项目/区域,可添加provider块(也可留空用Cloud Shell默认凭据)
provider "google" {
  project = "your-gcp-project-id"
  region  = "us-central1"
}

provider "google-beta" {
  project = "your-gcp-project-id"
  region  = "us-central1"
}

步骤2:重新初始化Terraform

保存main.tf后,重新执行初始化命令,让Terraform下载并识别这两个提供商:

terraform init

你会看到Terraform开始下载google和google-beta的提供商包,完成后就可以获取完整的schema数据了。

步骤3:获取并解析提供商Schema

执行terraform providers schema -json命令,这次会返回包含两个提供商完整schema的JSON数据。因为内容量很大,建议把结果保存到文件里方便查看:

terraform providers schema -json > provider-schema.json

之后可以用Cloud Shell自带的jq工具过滤出资源类型:

列出Google提供商的所有资源类型

jq '.provider_schemas."registry.terraform.io/hashicorp/google".resource_schemas | keys' provider-schema.json

列出Google-beta提供商的所有资源类型

jq '.provider_schemas."registry.terraform.io/hashicorp/google-beta".resource_schemas | keys' provider-schema.json

如果想查看某个具体资源的详细schema(比如google_compute_instance),可以用:

jq '.provider_schemas."registry.terraform.io/hashicorp/google".resource_schemas."google_compute_instance"' provider-schema.json

内容的提问来源于stack exchange,提问作者sam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 01:24:05