Amazon web services 每个不同工作区的地形提供程序自定义
我想使用terraform进行prod/dev拆分。然而,在开发时,由于延迟和成本,我们更喜欢使用本地DynamoDB。创建了一个示例.tf文件,如下所示:Amazon web services 每个不同工作区的地形提供程序自定义,amazon-web-services,terraform,Amazon Web Services,Terraform,我想使用terraform进行prod/dev拆分。然而,在开发时,由于延迟和成本,我们更喜欢使用本地DynamoDB。创建了一个示例.tf文件,如下所示: variable "workspace" { default = { local = "aws.local" prod = "aws.prod" } } provider "aws" { alias = "prod&quo
variable "workspace" {
default = {
local = "aws.local"
prod = "aws.prod"
}
}
provider "aws" {
alias = "prod"
region = "us-west-2"
}
provider "aws" {
alias = "local"
access_key = "mock_access_key"
region = "us-east-1"
s3_force_path_style = true
secret_key = "mock_secret_key"
skip_credentials_validation = true
skip_metadata_api_check = true
skip_requesting_account_id = true
endpoints {
dynamodb = "http://localhost:4000"
}
}
resource "aws_sqs_queue" "terraform_queue" {
provider = var.workspace[terraform.workspace]
name = "terraform-example-queue"
}
不要介意SQS,因为它是最简单的。但是,当我尝试执行地形初始化/计划时:
Error: Invalid provider configuration reference
on deneme.tf line 28, in resource "aws_sqs_queue" "terraform_queue":
28: provider = var.workspace[terraform.workspace]
The provider argument requires a provider type name, optionally followed by a
period and then a configuration alias.
看起来它需要提供者是一个精确的值,而不是一个表达式/插值,为什么Terraform无法推断提供者的参数配置?如何实现每个工作区的拆分和处理分离?我确认我的terraform workspace show
返回local