'AWS HTTP API Gateway integration with SQS - MessageAttribute doesn't work
I've integrated HTTP API Gateway with SQS and have some problem with MessageAttributes. The main goal is to pass parameter in URL, attach it to message attribute and send to SQS.
I've created HTTP API with RouteKey = "$default" with the following RequestParameters:
RequestParameters =
{
{"MessageBody", "$request.body"},
{"QueueUrl", Output.Format($"{config.SqsPath}")},
{"MessageAttributes", @"{
""SubscriptionId"": {
""DataType"": ""String"",
""StringValue"": ""abc123""
}
}"}
}
for test purpose I've hardcoded value, but at the end I'll use $request.querystring.SubscriptionId
What I have now, is the following:
It looks good, however all post requests which I made didn't contains any attributes:
What have I missed?
Update
I figured out what happened - I had to pass parameters template with invalid format (however, no error was thrown).
Finally I have a working version, message attribute in AWS Console:
{ "SubscriptionId": { "DataType": "String", "StringValue": "${request.querystring.SubscriptionId}" } }
and my integration code:
RequestParameters =
{
{"MessageBody", "$request.body"},
{"QueueUrl", Output.Format($"{config.SqsPath}")},
{"MessageAttributes", @"{ ""SubscriptionId"": { ""DataType"": ""String"", ""StringValue"": ""${request.querystring.SubscriptionId}"" } }"}
},
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
