My requirement is to send messages(In JSON format) to Amazon SQS Queue using Ready API.
Could you please advise.
As far as I know, there is no built-in feature to implement this. You can submit your request as a suggestion here:
@Community, has anyone tried to implement a plugin that allows sending message to Amazon SQS?
Has anyone got this to work - sending request to SendMessage to SQS?
I am evaluating ReadyAPI to move from Postman and need to send messages onto an SQS queue.
Using a get request as described here
Created an AWS Signature Profile as per https://support.smartbear.com/readyapi/docs/projects/requests/auth/types/aws.html
Cannot get anything other than "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details." when sending from ReadyAPI.
Using the same request and AWS IAM credentials in Postman allows messages to be posted to the queue.
The only difference I can see is that in the headers, ReadyAPI adds x-amz-content-sha256 to the header, whereas Postman (which works) does not create or add this.
Both are sending the Authorization header as below
Authorization: AWS4-HMAC-SHA256 Credential=XXXXXXXXXXXXXXXXXXXX/20190116/eu-west-1/sqs/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
ReadyAPI (not working)
Authorization: AWS4-HMAC-SHA256 Credential=XXXXXXXXXXXXXXXXXXXX/20190116/eu-west-1/sqs/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Is the inclusion of the x-amz-content-sha256 in the signature generation significant?
Grateful for any pointers,
As far as I understand, you tried in ReadyAPI 2.6.0.
Please try to send a request in ReadyAPI 2.5.0 - it shouldn't add the "x-amz-content-sha256" header.
Here are the links to download:
But, please note that we changed the behavior in ReadyAPI 2.6.0 since this header should be sent.
Found below code samples to do the same in Java. So that should work mostly as is in Groovy too.
Please go thru it if not already.
Downgrading to v2.5 didn't resolve the issue for me.
We worked around this by changing from SQS as the target to an API and Lambda solution.