Terraform:使用Terraform同时标记所有google计算实例

Terraform:使用Terraform同时标记所有google计算实例,terraform,tagging,terraform-provider-gcp,infrastructure-as-code,Terraform,Tagging,Terraform Provider Gcp,Infrastructure As Code,我有一个现有的项目,项目中运行实例。我已经在项目中使用Terraform和凭据文件进行了身份验证。我想通过输入项目ID来获取现有资源 provider "google" { credentials = "${file("${var.path}/terraform-ma.json")}" project = "terraform-ma-2020" region = "us-central1" zone = "us-central1-b" } data "google

我有一个现有的项目,项目中运行实例。我已经在项目中使用Terraform和凭据文件进行了身份验证。我想通过输入项目ID来获取现有资源

provider "google" {
  credentials = "${file("${var.path}/terraform-ma.json")}"

  project = "terraform-ma-2020"
  region  = "us-central1"
  zone    = "us-central1-b"
}



data "google_project" "project" {
}

output "project_id" {
  value = data.google_project.project.project_id

}

您可以使用

中的信息将现有GCP资源导入Terraform状态文件,AWS提供商如何为您这样做?为了实现这一点,您将如何使用AWS提供商?您是否可以编辑您的问题,将其作为一个示例,并解释这对GCP提供程序不起作用?是否有必要使用Terraform导入命令导入所有资源?Terraform说,一旦你可以访问任何东西,你就可以获取数据。我唯一的困惑是,通过使用Terraform的凭证文件对项目进行身份验证,我们确实有权访问该项目。但是为了获取数据,我们的tfstate文件应该使用当前/现有的基础结构权限进行更新,并且数据块可以从tfstate文件获取数据。这就是为什么导入很重要吗???我不确定我是否理解你的问题。您可以使用Terraform从.tf文件创建资源。导入现有资源将只创建.tfstate文件,而不是。tf文件。因此,您必须使用状态文件来创建配置文件。我将尝试重新构造我的问题。简而言之,如果基础设施不是通过Terraform创建的,那么导入是绝对必要的,以便管理和更新现有的基础设施,对吗?数据源块用于从您有权访问的资源中获取信息。如果我有权通过服务密钥帐户凭据访问项目。这是否意味着我们可以在不使用IMPORT命令的情况下检索该项目下资源的信息??或者,要使“数据源”命令正常工作,您需要使.tfstate文件与现有基础结构保持最新状态?您可以导入手动创建的现有基础结构:是。但如果我没记错的话,并非所有资源类型都支持导入。