python - 尝试使用 Boto3 调用 Lamba 时出现 InvalidSignatureException

标签 python amazon-web-services boto3 aws-glue

我正在使用“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/

相关文章:

python - Conda 和 Python 模块

python - 如何为 Python itertools.ifilter 函数提供额外的参数?

amazon-web-services - 在aws管理控制台中哪里可以修改elastic beanstalk健康检查url?

amazon-web-services - Route53 私有(private)托管区域 VPC 参数化列表

amazon-web-services - 基于 WebSocket 协议(protocol)的 AWS IoT MQTT

amazon-dynamodb - 是否可以在 update_item 中结合 if_not_exists 和 list_append

python - 来自 Windows PowerShell 中 ipy.exe 的 "File -X: does not exist"消息

python - 如何在 Python 中使用 Cognito 凭据调用 API 网关

amazon-ec2 - 仅从 EC2 实例配置文件中获取 boto3 凭证

python - 使用 Beautifulsoup 解析时保持 XML 文件的缩进