gpt4 book ai didi

terraform - AWS Codepipeline with Terraform - 如何动态创建阶段

转载 作者:行者123 更新时间:2023-12-05 02:12:03 25 4
gpt4 key购买 nike

我使用 terraform 模块设计了一个 AWS 代码管道模块,我有多个使用代码管道模块的实际代码管道。我使用模块作为设计模式,因为所有的代码流水线看起来都很相似,除了一些代码流水线需要批准阶段,一些不需要。如何设计代码流水线模块批准阶段,以便可以根据不同需求创建实际的代码流水线?

我尝试使用 count = 0 或 1 来控制舞台,但它不起作用,因为舞台不是资源级的。有什么棘手的方法或解决方法吗?

我觉得这个链接问了类似的问题,但我不知道答案是什么: Terraform & AWS CodePipeline - Dynamically define actions on a stage

这是我的代码管道 terraform 模块:

resource "aws_codepipeline" "dev" {
name = "my_codepipeline"
role_arn = ...
...
stage {
name = "Source"
...
}
stage {
name = "test"
...
}
stage {
# count = 0 # or 1. it does not work
name = "Approval"
action {
name = "Approval"
owner = "AWS"
category = "Approval"
provider = "Manual"
version = "1"

configuration {
NotificationArn = "..."
CustomData = "..."
ExternalEntityLink = "..."
}
}
}
stage {
name = "prod"
...
}
}

最佳答案

要动态添加一个阶段(而不仅仅是一个 Action ),您可以执行以下操作:

dynamic "stage" {
for_each = var.production_approval ? [1] : []
content {
name = "Approve"
action {
configuration = {
NotificationArn = var.approve_sns_arn
CustomData = var.approve_comment
}
name = "Production-Approval"
category = "Approval"
owner = "AWS"
provider = "Manual"
version = "1"
}
}
}

关于terraform - AWS Codepipeline with Terraform - 如何动态创建阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56535283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com