在自定义事件模式中为事件 SSM 参数使用通配符

man*_*han 4 amazon-cloudwatch aws-lambda aws-ssm amazon-cloudwatch-events

我有一个触发 Jenkins 工作的 lambda 函数。我想在添加新的 ssm 参数时调用此 lambda。我在 cloud-watch 事件模式中添加了以下自定义事件模式。

{
  "source": [
    "aws.ssm"
  ],
  "detail-type": [
    "Parameter Store Change",
    "Parameter Store Policy Action"
  ],
  "detail": {
      "name": [
          "/dev/*"
        ],
        "operation": [
          "Create",
          "Update",
          "Delete",
          "LabelParameterVersion"
  ]

}

}
Run Code Online (Sandbox Code Playgroud)

这意味着,如果我创建一个以“/dev/anystring”开头的 ssm 参数,则需要触发 lambda 但如果我提供通配符,则 lambda 不会触发。对此有何建议。?

小智 7

在这种情况下,您希望使用前缀比较运算符根据detail.name字段中的值进行过滤。

{
  "source": [
    "aws.ssm"
  ],
  "detail-type": [
    "Parameter Store Change",
    "Parameter Store Policy Action"
  ],
  "detail": {
    "name": [ { "prefix": "/dev/" } ],
    "operation": [
      "Create",
      "Update",
      "Delete",
      "LabelParameterVersion"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅在 Amazon EventBridge 中使用高级规则减少自定义代码,尤其是示例2. 纽约市所有 ATM中的过滤自定义应用程序中的事件部分。

我代表我的雇主亚马逊做出贡献。我的贡献是在 MIT 许可下获得许可的。有关更详细的解释,请参见此处