Я пытаюсь эмулировать функциональность AWS SQS с помощью контейнера https://github.com/roribio/alpine-sqs.
Мне удалось запустить контейнер Docker и отправить сообщения в очередь с помощью терминала.настроил идентификатор ключа доступа AWS и секретный ключ доступа AWS для очистки строк с помощью aws configure
Команда, которую я использовал для отправки сообщения в контейнер очереди SQS, была следующей
aws --endpoint-url http://localhost:9324 sqs send-message --queue-url http://localhost:9324/queue/default --message-body "Hello, queue!"
Мне удалось получить сообщение, и я вижу его в панели инструментов в браузере по адресу localhost:9235
.
Но когда я пытаюсь отправить сообщение, используя boto3
вpython
, выдает ошибку.
Traceback (последний вызов был последним): файл "/home/infomagnus/PycharmProjects/InfoMagnus/workload/app/workload/services/queue_services.py", строка 13, в «Информация о текущем бестселлере для« Нью-Йорк Таймс »для« Файла »/home/infomagnus/envs/DSDPenv/lib/python3.7/site-packages/botocore/client.py", строка 357, в _api_call возвращает self._make_api_call (имя_операции, kwargs) Файл "/home/infomagnus/envs/DSDPenv/lib/python3.7/site-packages/botocore/client.py", строка 661, в _make_api_call вызывает файл error_class (parsed_response, operation_name).ClientError: Произошла ошибка(InvalidClientTokenId) при вызове операции SendMessage: маркер безопасности, включенный в запрос, недействителен
Не уверен, почему я получаю ошибку, даже после установки ключей с помощью aws configure
.
Все, что я запускаю, находится у меня на месте.
Вот мой код:
import boto3
sqs = boto3.client('sqs', aws_access_key_id=None, aws_secret_access_key=None)
queue_url = 'http://localhost:9324/queue/default'
resp = sqs.send_message(
QueueUrl=queue_url,
MessageBody=(
'Sample message for Queue.'
)
)
print(resp['MessageId'])