有没有办法将terraform后端配置放在模块中?

有没有办法将terraform后端配置放在模块中?,terraform,Terraform,我的所有地形文件都以以下内容开头: terraform { required_version = ">= 0.11, < 0.12" backend "s3" { bucket = "my-terraform-state" key = "my-service/my-component/terraform.tfstate" region = "eu-west-1" encrypt = "true" } } provider "a

我的所有地形文件都以以下内容开头:

terraform {
  required_version = ">= 0.11, < 0.12"
  backend "s3" {
    bucket  = "my-terraform-state"
    key     = "my-service/my-component/terraform.tfstate"
    region  = "eu-west-1"
    encrypt = "true"
  }
}

provider "aws" {
  region = "eu-west-1"
  version = ">= 1.8, < 1.9"
}

当我尝试类似的方法时,它会失败,并显示一条消息,即后端配置不能包含变量。我还阅读了关于只读状态的内容,并注意到它可以包含变量。

您可以有一个名为
terraform.tf的单一文件:

terraform {
  required_version = ">= 0.11, < 0.12"
  backend "s3" {
    bucket  = "my-terraform-state"
    key     = "my-service/my-component/terraform.tfstate"
    region  = "eu-west-1"
    encrypt = "true"
  }
}
provider "aws" {
  region = "eu-west-1"
  version = ">= 1.8, < 1.9"
}
将这些文件放在根目录中。Terraform将使用它们,您不再需要在每个文件的顶部设置这些标题


您不能在
terraform.tf
中使用变量/插值,因为terraform很早就使用了该文件

谢谢你的回答。但是,难道不是所有组件都共享同一个状态文件,从而失去了存储每个组件状态的优势吗?
provider "aws" {
  region = "eu-west-1"
  version = ">= 1.8, < 1.9"
}