Мы пытаемся отправить сообщение в очередь AWS FIFO. У нас уже есть рабочая версия кода, отправляющего сообщение в стандартную очередь SQS.
Код Python (наше требование - не использовать SDK): Примеры полного процесса подписания версии 4 (Python)
Для стандартной очереди мы использовали следующие параметры
method = 'GET'
service = 'sqs'
host = 'sqs.us-west-2.amazonaws.com'
region = 'us-west-2'
endpoint = 'https://sqs.us-west-2.amazonaws.com/xxxxxx/TestQueue'
request_parameters = 'Action=SendMessage&MessageBody=mytest&Version=2012-11-05'
canonical_uri = '/xxxxxx/TestQueue'
Для очереди FIFO мы использовали тот же код и дополнительно изменили его следующим образом
method = 'GET'
service = 'sqs'
host = 'sqs.us-west-2.amazonaws.com'
region = 'us-west-2'
endpoint = 'https://sqs.us-west-2.amazonaws.com/xxxxxxx/Test.fifo'
request_parameters = 'Action=SendMessage&MessageBody=mytest&MessageGroupId=test&MessageDeduplicationId=ttte&Version=2012-11-05'
canonical_uri = '/xxxxxxx/Test.fifo'
Но это не удалось. Мы что-то упускаем, может ли кто-нибудь нам помочь?
Response code: 403
<?xml version="1.0"?><ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error><Type>Sender</Type><Code>SignatureDoesNotMatch</Code><Message>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.