Amazon web services 每个不同工作区的地形提供程序自定义

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

我想使用terraform进行prod/dev拆分。然而,在开发时,由于延迟和成本,我们更喜欢使用本地DynamoDB。创建了一个示例.tf文件,如下所示:

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