【发布时间】:2020-08-16 09:32:25
【问题描述】:
是否可以根据参数化名称在 terraform 中使用一个 aws_cloudformation_stack 资源定义创建多个 CloutFormation 堆栈?
我定义了以下资源,我希望每个 app_name、app_env build_name 组合都有一个堆栈:
resource "aws_s3_bucket_object" "sam_deploy_object" {
bucket = var.sam_bucket
key = "${var.app_env}/${var.build_name}/sam_template_${timestamp()}.yaml"
source = "../.aws-sam/sam_template_output.yaml"
etag = filemd5("../.aws-sam/sam_template_output.yaml")
}
resource "aws_cloudformation_stack" "subscriptions_sam_stack" {
name = "${var.app_name}---${var.app_env}--${var.build_name}"
capabilities = ["CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"]
template_url = "https://${var.sam_bucket}.s3-${data.aws_region.current.name}.amazonaws.com/${aws_s3_bucket_object.sam_deploy_object.id}"
}
当我在 build_name 名称更改时运行 terraform apply 时,旧堆栈被删除并创建一个新堆栈,但是我想保留旧堆栈并创建一个新堆栈
【问题讨论】:
标签: terraform terraform-provider-aws