我正在使用“RequestResponse”调用类型调用 aws lambda 函数并收到此错误:
我已经搜索过其他 aws SDK 支持的解决方案,但找不到任何适用于 python boto3 的解决方案。
编辑:我正在使用 AWS Glue python shell 作业来运行我的代码,所以我无法控制系统时间。
Traceback (most recent call last):
File "/tmp/glue-python-libs-dgQjkA/audit_api_handler.py", line 532, in get_jobs_by_job_types
return self.get_api_response(method, params)
File "/tmp/glue-python-libs-dgQjkA/audit_api_handler.py", line 591, in get_api_response
LogType='Tail', Payload=json.dumps(post_data).encode())
File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 357, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/usr/local/lib/python2.7/site-packages/botocore/client.py", line 661, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions
.
ClientError
:
An error occurred (InvalidSignatureException) when calling the Invoke operation: Signature expired: 20190712T122841Z is now earlier than 20190712T122841Z (20190712T123341Z - 5 min.)
最佳答案
虽然我很欣赏@Martin Loper 的回答,因为它解释了问题的原因,但我无法从粘合作业中删除连接,因为它需要与数据库通信,而且我也无法在VPC,因为它是一项安全要求。 当我在工作开始时使用它时,我的问题得到了解决:
boto3.setup_default_session(region_name="us-east-1")
它确保每个 boto3 客户端都使用 us-east-1 作为其区域。
更新: 虽然它的频率要低得多,但这个问题仍然存在。
关于python - 尝试使用 Boto3 调用 Lamba 时出现 InvalidSignatureException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57007981/