How to exclude new lines in InputTransformer template in EventBridge event rule

0

Hi all,

I have an EventBridge rule with an InputTransformer block that looks like:

InputTransformer:
  InputPathsMap:
    Id: "$.id"
    Source: "$.source"
    PublisherName: "$.source"
  InputTemplate: >-
      {
        "EventBridgeEventId": <Id>,
        "Source": <Source>,
        "PublisherName": <PublisherName>,
      }

The target of this event rule is an SQS queue. I can see that when the transformed event is ingested into the queue, it also contains the newlines from the above InputTemplate template:

{
  "Records": [
      {
          "messageId": "77a71036-bb28-4ece-9081-d94ec47a4486",
          "body": "{\n  \"EventBridgeEventId\": \"2gka6aad-45jk-23gh-8204-bn692392jda4\",\n  \"PublisherName\": \"some-publisher\",\n  \"Source\": \"some-publisher\"\n}",
          "eventSource": "aws:sqs",
          "awsRegion": "eu-west-1"
      }
  ]
}

Is it possible to have the above event rule InputTemplate exclude new line characters from the event that is sent to the target?

If I construct the InputTemplate as a single line like below, it works fine and new lines characters are not included in the event:

InputTransformer:
  InputPathsMap:
    Id: "$.id"
    Source: "$.source"
    PublisherName: "$.source"
  InputTemplate: >-
      {"EventBridgeEventId": <Id>,"PublisherName": <PublisherName>,"Source": <Source>}

Thank you in advance! Pierin

Pier
已提问 2 年前944 查看次数
1 回答
0

That is exactly the way to do it. Do not include the new lines in the template to begin with.

profile pictureAWS
专家
Uri
已回答 2 年前
  • Thanks for the answer, Uri!

    I have a long InputTemplate (the above was a simplified example) so keeping it as a single line doesn't help for readability. That's why I wanted to keep it in the above multi-line structure.

  • The issue is with your leading spaces. If you will change it to:

      InputTemplate: >-
          {
          "EventBridgeEventId": <Id>,
          "Source": <Source>,
          "PublisherName": <PublisherName>,
          }
    

    It should work. This is how YAML works.

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则