【问题标题】:regex in CloudWatch event pattern matchingCloudWatch 事件模式匹配中的正则表达式
【发布时间】:2019-07-06 12:27:52
【问题描述】:

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

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

【问题讨论】:

  • 我正在尝试制作类似的东西。这方面有进展吗?
  • @YaroslavTkachenko :我最终为每个目标 SNS 主题创建了单独的规则。

标签: amazon-cloudwatch aws-event-bridge


【解决方案1】:

现在可以使用 EventBridge 及其 ability to do prefix matching。这对我有用。我有一个 Lambda 函数设置为目标,并且该函数仅在转录作业达到 COMPLETED 状态并且作业名称以 voicemail- 开头时执行。

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

【讨论】:

  • 很高兴它很有用。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    请务必记住以下有关事件模式的内容 匹配:

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

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

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

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

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

    无赖...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      相关资源
      最近更新 更多