【问题标题】:AWS Cloudwatch trigger Codepipeline on dynamic tagAWS Cloudwatch 在动态标签上触发 Codepipeline
【发布时间】:2020-11-26 19:52:36
【问题描述】:

我想用动态标签标记提交,例如git tag deploy-$(date +"%Y-%m-%d_%H-%M-%S"),然后从 cloudwatch 触发代码管道。问题是如果我使用以下 cloudwatch 事件模式:

{
  "source": [
    "aws.codecommit"
  ],
  "detail-type": [
    "CodeCommit Repository State Change"
  ],
  "resources": [
    "arn:aws:codecommit:region:XXX:someName"
  ],
  "detail": {
    "event": [
      "referenceCreated",
      "referenceUpdated"
    ],
    "repositoryName": [
      "someName"
    ],
    "referenceType": [
      "tag"
    ],
    "referenceName": [
      "deploy"
    ]
  }
}

它只会在特定标签上触发 - “部署”。有没有办法说任何以(包含)部署关键字开头的标签?

【问题讨论】:

    标签: amazon-web-services amazon-cloudwatch aws-codepipeline aws-codecommit


    【解决方案1】:

    我正在查看Content-based Filtering with Event Patterns 文档及其Prefix Matching。文档中给出的示例是:

    {
      "time": [ { "prefix": "2017-10-02" } ],
    }
    

    根据示例,以下似乎适用于您的情况:

    {
      "source": [
        "aws.codecommit"
      ],
      "detail-type": [
        "CodeCommit Repository State Change"
      ],
      "resources": [
        "arn:aws:codecommit:region:XXX:someName"
      ],
      "detail": {
        "event": [
          "referenceCreated",
          "referenceUpdated"
        ],
        "repositoryName": [
          "someName"
        ],
        "referenceType": [
          "tag"
        ],
        "referenceName": [
           { "prefix": "deploy" } ]
        ]
      }
    }
    

    【讨论】:

    • 感谢您的回复,但很遗憾,它不起作用。我已经尝试过这种方式,但出现错误“验证错误。详细信息:事件模式包含无效元素(只能是用引号、数字和未引用的关键字 true、false 和 null 括起来的字符串)”
    • @datahack 您能否在 EventBridge 控制台中检查,而不是 CloudWatch Events。我在那里创建这样的规则没有问题。我没有检查它的功能,但 EB 并没有抱怨 { "prefix": "deploy" } 的规则。
    • 好吧,现在我真的很困惑。 AWS 声明如下:“Amazon EventBridge(以前称为 CloudWatch Events)提供来自 CloudWatch Events 的所有功能......”。我没想到新的服务控制台:) 我会尝试让你知道它是否工作。谢谢!
    • @datahack 没问题。检查它是如何工作的,请让我知道它会成功。
    • 工作!谢谢!
    【解决方案2】:

    您可以在前缀中使用通配符:

    {
      "source": [
        "aws.codecommit"
      ],
      "detail-type": [
        "CodeCommit Repository State Change"
      ],
      "detail": {
        "referenceType": [
          "tag"
        ],
        "referenceName": [
          {
            "prefix": "deploy-*"
          }
        ]
      }
    }
    

    【讨论】:

    • 嗨@shariqmaws 感谢您的回复,但不幸的是这不起作用。您不能使用这样的前缀,cloudwatch 事件会产生错误 - “事件模式包含无效元素”
    • 去掉*,即前缀": "deploy"
    猜你喜欢
    • 2020-01-21
    • 2022-10-25
    • 2018-07-27
    • 2018-02-26
    • 2020-05-08
    • 1970-01-01
    • 2019-03-02
    • 2022-11-02
    • 2020-06-10
    相关资源
    最近更新 更多