By using AWS re:Post, you agree to the Terms of Use

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

1 Answer
0

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

profile picture
EXPERT
answered 2 months ago
  • 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.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions