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
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:
It should work. This is how YAML works.