NoCredentialsError botocore.exceptions.NoCredentialsError: Невозможно найти учетные данные даже после передачи учетных данных - PullRequest
0 голосов
/ 02 октября 2019

Я работаю над отправкой сообщений в очередь 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()

Укажите, где я ошибаюсь?

1 Ответ

0 голосов
/ 09 октября 2019

Вместо того, чтобы передавать учетные данные AWS клиенту непосредственно в коде, я установил переменные среды, и это сработало.

...