【问题标题】:Conditional InputTemplate body AWS eventbridge rule using SAM template使用 SAM 模板的条件 InputTemplate 正文 AWS eventbridge 规则
【发布时间】:2022-06-14 09:13:07
【问题描述】:

我为 slack 创建了一个 aws 事件桥接规则。现在我想根据条件显示不同的模板。条件变量及其值将成为事件消息的一部分。我在 InputPathMap 中声明了一个变量,并将该变量用作条件参数。使用 SAM 部署时出现错误。它显示变量值为 null 并且没有将代码部署到 aws。

我的规则的部分信息。

...
InputTransformer:
            InputPathsMap:             
              "actionMsg" : "$.detail.actionMsg"
              "actionValue" : "$.detail.actionValue"
            InputTemplate: !Sub >
              !If [
                     <actionValue>, 
                        {
                        "channel": "slackChannelName",
                        "text": "condition 1 : <actionMsg>"
                        ...(more)
                        }, 
                        {
                         "channel": "slackChannelName",
                         "text": "condition 2 : <actionMsg>"
                         ...(more)
                        }
                    ]

我在 google 中搜索并看到了 aws 条件信息。 我可以用我定义的变量设置条件吗?你能给我一个例子,提示或链接吗?我会很感激的。

【问题讨论】:

    标签: amazon-web-services slack-api aws-sam aws-event-bridge


    【解决方案1】:

    这在单个 EventBridge 规则中是不可能的。您必须为您关心的每个唯一 $detail.actionValue 定义带有事件模式的单独 2 条规则。

    一种可能的解决方案可能是定义一个规则,其中包含自己的输入转换和事件模式,以匹配您的第一个条件

    { 
      "...": "...",
      "detail": {
        "...": "...",
        "actionValue": ["foo"]
    }
    

    然后使用您的默认输入转换定义一个“默认规则”,该转换捕获除actionValue == "foo" 之外的所有内容

    { 
      "...": "...",
      "detail": {
        "...": "...",
        "actionValue": [ {"anything-but": ["foo"]} ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 2018-04-15
      • 2021-08-10
      • 1970-01-01
      相关资源
      最近更新 更多