我正在使用Terraform snowflake插件。我想在terraform作用域中使用${terraform.workspace}变量。
terraform {
required_providers {
snowflake = {
source = "chanzuckerberg/snowflake"
version = "0.20.0"
}
}
backend "s3" {
bucket = "data-pf-terraform-backend-${terraform.workspace}"
key = "backend/singlife/landing"
region = "ap-southeast-1"
dynamodb_table = "data-pf-snowflake-terraform-state-lock-${terraform.workspace}"
}
}但是我得到了这个错误。变量在此作用域中不可用?
Error: Variables not allowed
on provider.tf line 9, in terraform:
9: bucket = "data-pf-terraform-backend-${terraform.workspace}"
Variables may not be used here.
Error: Variables not allowed
on provider.tf line 12, in terraform:
12: dynamodb_table = "data-pf-snowflake-terraform-state-lock-${terraform.workspace}"
Variables may not be used here.发布于 2021-10-21 15:30:32
terraform { backend "azurerm“{} }
storage_account_name =“部署管理器”container_name = "terraform“key = "production.terraform.tfstate"
terraform初始化-backend-config=backend.conf
发布于 2021-08-15 08:50:52
后端块不能引用命名值(如输入变量、局部变量或数据源属性)。
但是,s3 backend docs向您展示了如何根据当前工作区对一些s3存储进行分区,以便每个工作区都有自己的独立状态文件。您不能为每个工作区指定不同的存储桶。您只能为所有工作空间指定一个存储桶,但s3后端会添加workspace prefix to the path
当使用非默认工作区时,状态路径将是/ workspace_key_prefix / workspace _name/key (另请参阅workspace_key_prefix配置)。
一个发电机工作台就可以满足所有工作空间的需求。所以只需使用:
backend "s3" {
bucket = "data-pf-terraform-backend"
key = "terraform.tfstate"
region = "ap-southeast-1"
dynamodb_table = "data-pf-snowflake-terraform-state-lock"
}并在部署前根据需要切换工作空间。
发布于 2022-01-11 10:00:01
遇到类似的问题,解决方法是在Terraform Init中指定变量文件
Main.tf
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "2.91.0"
}
mongodbatlas = {
source = "mongogdb/mongodbatlas"
version = "1.1.1"
}
time = {
source = "hashicorp/time"
version = "0.7.2"
}
random = {
source = "hashicorp/random"
version = "3.1.0"
}
}
backend "azurerm" {
resource_group_name = local.tfResourceGroupName
storage_account_name = var.tf_backend.storage_name
container_name = local.tfContainerName
key = var.tf_backend.storage_key
}
}
terraform init -var-file="<your-var-file>"https://stackoverflow.com/questions/65838989
复制相似问题