Я работаю над отправкой сообщений в очередь SQS внутри приложения Flask. Я имитирую эту функциональность SQS локально, используя https://github.com/vsouza/docker-SQS-local.
Я устанавливаю учетные данные для boto3.client()
внутри функции. Когда я запускаю функцию отправки сообщений непосредственно в Pycharm, она отправляет сообщения в очередь SQS.
Но когда я докеризирую это приложение Flask и вызываю конечную точку, которая запускает эту функцию, она выдает ошибку.
повышение NoCredentialsError botocore.exceptions.NoCredentialsError: Невозможно найти учетные данные
Вот код для отправки сообщений.
def send_mes():
config = Config()
sqs = boto3.client('sqs', aws_access_key_id=None, aws_secret_access_key=None,
endpoint_url=config.QUEUE_ENDPOINT_URL, region_name='default')
feeder_queue = config.FEEDER_QUEUE
def inside_fun():
while True:
resp = sqs.send_message(
QueueUrl=feeder_queue,
MessageBody=(
f'Sample message for Queue at {datetime.now()}.'
)
)
print(resp)
time.sleep(3)
t1 = threading.Thread(target=inside_fun)
t2 = threading.Thread(target=inside_fun)
t1.start()
t2.start()
t1.join()
t2.join()
if __name__ == '__main__':
send_mes()
Укажите, где я ошибаюсь?