terraform_远程_状态数据块语法

terraform_远程_状态数据块语法,terraform,devops,infrastructure-as-code,terraform0.12+,Terraform,Devops,Infrastructure As Code,Terraform0.12+,我正在使用Terraform进行AWS多帐户设置。我有一个主帐户,它创建了几个子帐户,在子帐户中,我引用主帐户的远程状态来检索输出值 对于test main.tf中的此配置,terraform plan命令失败: terraform { required_version = ">= 0.12.0" backend "s3" { bucket = "bucketname" key = "statekey.tfstate" region = "us-ea

我正在使用Terraform进行AWS多帐户设置。我有一个主帐户,它创建了几个子帐户,在子帐户中,我引用主帐户的远程状态来检索输出值

对于test main.tf中的此配置,
terraform plan
命令失败:

terraform {
  required_version = ">= 0.12.0"

  backend "s3" {
    bucket = "bucketname"
    key    = "statekey.tfstate"
    region = "us-east-1"
  }
}

provider "aws" {
  region  = "us-east-1"
  version = "~> 2.7"
}

data "aws_region" "current" {}

data "terraform_remote_state" "common" {
  backend = "s3"
  config {
        bucket = "anotherbucket"
        key    = "master.tfstate"
  }
}
出现以下错误:

➜  test terraform plan

Error: Unsupported block type

  on main.tf line 20, in data "terraform_remote_state" "common":
  20:   config {

Blocks of type "config" are not expected here. Did you mean to define argument
"config"? If so, use the equals sign to assign it a value.
从我可以看出,这应该是有效的…我做错了什么

➜  test terraform -v  
Terraform v0.12.2
+ provider.aws v2.14.0
升级到0.12.x后,似乎没有更新

作为错误提示,在
config


data "terraform_remote_state" "common" {
  backend = "s3"
  config = {
        bucket = "anotherbucket"
        key    = "master.tfstate"
  }
}

如果问题已解决,建议提交PR以更新文档,然后其他人可以避免再次出现相同的问题

出于好奇,你从这个遥远的国家得到了什么?在99%的情况下,当人们使用远程状态数据源时,我建议用更原生的提供者数据源替换它。@ydaetskcoR我正在提取AWS帐号。父帐户正在为环境和项目与AWS组织创建几个子帐户,每个项目都有自己的Terraform配置。有时答案就在眼前。