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
gefragt vor 2 Jahren944 Aufrufe
1 Antwort
0

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

profile pictureAWS
EXPERTE
Uri
beantwortet vor 2 Jahren
  • 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.

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen