CloudWatch事件模式匹配中的正则表达式

时间:2019-02-12 19:15:41

标签: amazon-cloudwatch

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

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

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

鉴于以下AWS文档,我也试图解决此问题,但看来这是不可能的。

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

  

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

     
      
  • 为使模式与事件匹配,该事件必须包含模式中列出的所有字段名称。字段名称必须出现在   具有相同嵌套结构的事件。

  •   
  • 模式中未提及的事件的其他字段将被忽略;有效地,对于未提及的字段,有一个“ ”:“ ”通配符。

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

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

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

  •   

笨蛋...

答案 2 :(得分:0)

现在可以通过EventBridge及其ability to do prefix matching来实现。这对我有用。我已将Lambda函数设置为目标,并且仅在Transcribe作业达到COMPLETED状态且作业名称以voicemail-开头时执行该功能。

{
  "source": [
    "aws.transcribe"
  ],
  "detail": {
    "TranscriptionJobName": [
      {
        "prefix": "voicemail-"
      }
    ],
    "TranscriptionJobStatus": [
      "COMPLETED"
    ]
  }
}