【发布时间】:2018-02-06 02:36:56
【问题描述】:
我正在测试一个使用 boto3 访问 DynamoDB 的 Python 应用程序,我从 boto3 收到以下错误消息。
{'error':
{'Message': u'Signature expired: 20160915T000000Z is now earlier than 20170828T180022Z (20170828T181522Z - 15 min.)',
'Code': u'InvalidSignatureException'}}
我注意到这是因为我使用 python 包“freezegun.free_time”将时间冻结在 20160915,因为测试使用的模拟数据是静态的。
我确实对错误进行了一些研究,并找到了this answer post。基本上,它是说 AWS 在创建签名后的短时间内使签名无效。据我了解,在我的情况下,由于使用了“freeze_time”,签名被标记为在 20160915 创建,但 AWS 使用当前时间(测试运行的时间)。因此,AWS 认为这个签名已经过期将近一年,并返回错误消息。
有什么方法可以让 AWS 忽略该错误?或者是否可以使用boto3手动修改签名创建的日期和时间?
如果我没有清楚地解释我的问题,请告诉我。任何想法都表示赞赏。
【问题讨论】: