5

如何在正则表达式上匹配 CloudWatch 事件。我只需要在特定的作业名称上调用特定的 SNS 目标。例如,如下所示,我想对 TranscriptionJobName 进行正则表达式匹配。谢谢。

{
  "source": [
    "aws.transcribe"
  ],
  "detail-type": [
    "Transcribe Job State Change"
  ],
  "detail": {
    "TranscriptionJobStatus": [
      "COMPLETED",
      "FAILED"
    ],
    "TranscriptionJobName": [
      "transcription-localhost-*"
    ]
  }
}
4

3 回答 3

2

这现在可以通过 EventBridge 及其进行前缀匹配的能力来实现。这对我有用。我将 Lambda 函数设置为目标,该函数仅在 Transcribe 作业达到COMPLETED状态且作业名称以voicemail-.

{
  "source": [
    "aws.transcribe"
  ],
  "detail": {
    "TranscriptionJobName": [
      {
        "prefix": "voicemail-"
      }
    ],
    "TranscriptionJobStatus": [
      "COMPLETED"
    ]
  }
}
于 2020-10-29T20:41:09.237 回答
1

我最终为每个目标 SNS 主题创建了单独的规则。

于 2019-04-18T14:08:52.350 回答
1

我也在尝试解决这个问题,但鉴于以下 AWS 文档,这似乎是不可能的。

https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/CloudWatchEventsandEventPatterns.html

重要的是要记住以下有关事件模式匹配的内容:

  • 对于匹配事件的模式,事件必须包含模式中列出的所有字段名称。字段名称必须以相同的嵌套结构出现在事件中。

  • 模式中未提及的事件的其他字段将被忽略;实际上,没有提到的字段有一个“ ”:“ ”通配符。

  • 匹配是精确的(逐个字符),没有大小写折叠或任何其他字符串规范化。

  • 匹配的值遵循 JSON 规则:用引号括起来的字符串、数字和不带引号的关键字 true、false 和 null。

  • 数字匹配是在字符串表示级别。例如,300、300.0 和 3.0e2 被视为不相等。

无赖...

于 2019-04-30T17:35:05.787 回答