Amazon web services botocore.exceptions.ClientError:发生错误(AuthFailure)

Amazon web services botocore.exceptions.ClientError:发生错误(AuthFailure),amazon-web-services,amazon-ec2,boto3,botocore,Amazon Web Services,Amazon Ec2,Boto3,Botocore,不知道这里发生了什么。。。在使用boto3客户端执行简单的描述实例时,我遇到了这个错误 错误: botocore.exceptions.ClientError:调用DescribeInstances操作时发生错误(AuthFailure):AWS无法验证提供的访问凭据 代码段: def get_ec2_client(aws_access_key_id, aws_secret_access_key, region_name): return boto3.client(

不知道这里发生了什么。。。在使用boto3客户端执行简单的描述实例时,我遇到了这个错误

错误: botocore.exceptions.ClientError:调用DescribeInstances操作时发生错误(AuthFailure):AWS无法验证提供的访问凭据

代码段:

  def get_ec2_client(aws_access_key_id, aws_secret_access_key, region_name):

    return boto3.client(
            'ec2',
            aws_access_key_id=aws_access_key_id,
            aws_secret_access_key=aws_secret_access_key,
            region_name=region_name
        )

  instances=client.describe_instances()
我在debug中运行了这个,所以我确信creds是正确的。我在cli中也使用了相同的creds,而且它工作正常,所以有点搞不清楚到底发生了什么。 这是工作到昨天,所以我检查了boto3和botocore模块的更新。它们几乎每天都在更新,但我在最新的更新中没有看到任何突破性的变化

我在这里已经有一段时间了,仍然找不到问题所在。有人知道吗

由于我今天面临这个问题,我使用: boto3 1.15.11

在snipet中的botocore 1.18.11

,您在哪里调用
get\u ec2\u client
?它没有显示。是的,您的代码似乎是
返回
客户机
,并且它永远不会到达
描述\u实例()
调用。此外,建议您使用AWS CLI
AWS configure
命令将凭据存储在文件中,而不是传递凭据。通过这种方式,boto3将自动找到凭据,您在创建
客户端时无需传递凭据。感谢您的回复,代码交互的更完整图片。。客户端实际上在一个方法中:def get_ec2_snapshot(client):snap=client.descripe_instances(),这个def本身在这里调用:def get_snapshot(creds):snap=get_ec2_snapshot(get_ec2_client)(creds.get('AWS_ACCESS_KEY_ID'),creds.get('AWS_SECRET_ACCESS_KEY_KEY')),地区(名称))