【问题标题】:Can I enable/disable some stages of aws_codepipeline in Terraform我可以在 Terraform 中启用/禁用 aws_codepipeline 的某些阶段吗
【发布时间】:2018-06-10 11:48:38
【问题描述】:

我在 terraform 中有一个 CodePipeline,如下所示:

resource "aws_codepipeline" "main" {
      stage {
          name = "Source"
          ....
      }
      stage {
          name = "Test"
          ....
      }
      stage { 
          name = "Approval"
          ....
      }
      stage {
          name = "Deployment"
          ....
      }
}

是否可以配置我是否需要上述阶段之一,例如,如果变量enable_approval_stage=1,则创建审批阶段,如果enable_approval_stage=0,则不创建审批阶段?就像我们在资源 {} 中设置 count = 0 一样?

【问题讨论】:

    标签: terraform aws-codepipeline


    【解决方案1】:

    我的想法是创建两个不同的管道,一个有审批阶段,一个没有审批阶段。让他们像这样:

    如果 manual_approve 为真(值为 1):

    resource "aws_codepipeline" "pipeline-manualapprove" {
         count    = "${var.manual_approve}"
    

    如果 manual_approve 为 false(值为 0):

    resource "aws_codepipeline" "pipeline-automatic" {
         count    = "${1-var.manual_approve}"
    

    【讨论】:

    • ndaniel,你很聪明!如果我只需要启用/禁用一个阶段,它确实有效!唯一的缺点是 1)一些重复的代码,2)只能启用/禁用一个阶段。但这是一个很好的解决方法谢谢。
    • 我想做同样的事情并考虑创建两个单独的管道,但这是我真的不想进入的大量代码重复......没有其他方法可以使阶段有条件吗?我还需要决定是否创建多个不同的阶段。
    猜你喜欢
    • 2014-08-29
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多