Python 2.7 Boto3“;KeyError:';AccessKeyId'&引用;。已修复,但不确定如何修复

Python 2.7 Boto3“;KeyError:';AccessKeyId'&引用;。已修复,但不确定如何修复,python-2.7,amazon-web-services,boto3,Python 2.7,Amazon Web Services,Boto3,我有两个AWS帐户,它们从EC2实例发送电子邮件。每个EC2实例都有一个角色,允许它们执行操作ses:sendrawmail,并且每个实例都使用boto3 python模块。这两个实例都有效,直到在python代码中的这一行出现故障: client=boto3.client('ses','us-east-1') 并出现以下错误: File "/usr/local/lib/python2.7/site-packages/botocore/utils.py", line 203, in retri

我有两个AWS帐户,它们从EC2实例发送电子邮件。每个EC2实例都有一个角色,允许它们执行操作
ses:sendrawmail
,并且每个实例都使用boto3 python模块。这两个实例都有效,直到在python代码中的这一行出现故障:

client=boto3.client('ses','us-east-1')
并出现以下错误:

File "/usr/local/lib/python2.7/site-packages/botocore/utils.py", line 203, in retrieve_iam_role_credentials
    'access_key': data[role_name]['AccessKeyId'],
KeyError: 'AccessKeyId'
我导航到
/usr/local/lib/python2.7/site packages/botocore/
目录,并用vim打开了
utils.py
文件。我导航到
retrieve\u iam\u role\u credentials
方法,并尝试在
role\u name
循环中插入print语句。我收到一个“试图写入只读文件”错误,然后用命令退出:q

奇怪的是,当我再次尝试运行发送电子邮件代码时,它成功了。我并不认为这解决了问题,但当我在另一个EC2实例上重复相同的步骤时,它也开始工作了


我想我的问题是问题出在哪里,我是如何解决的?

我在sqs/s3中断断续续地看到了这一点,
KeyError:“access\u key”
。我的打赌/攻击是,在try/sleep块中封装每个呼叫几次,每次都能成功。有点糟糕boto3不能处理它。这也可能/值得注意,这可能是由handware/os丢弃数据包引起的,因为这似乎也是我们在这些机器上遇到的问题(AWS支持部门已确认存在问题)。因此,睡眠+重试。