amazon-web-services - 在 aws 上将 boto3 用于 dynamoDB 时出现 InvalidSignatureException

标签 amazon-web-services amazon-dynamodb python-3.4 boto3

我在 aws 上尝试连接到我的 dynamoDB 时遇到了某种凭据问题。在本地一切正常,我可以使用 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_DEFAULT_REGION 的环境变量进行连接,然后

dynamoConnection = boto3.resource('dynamodb', endpoint_url='http://localhost:8000')

当更改为 env 变量中的实时信用并将 endpoint_url 设置为 aws 上的 dynamoDB 时,失败并显示:

"botocore.exceptions.ClientError: An error occurred (InvalidSignatureException) when calling the Query operation: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details."

这些凭据是有效的,因为它们在与同一个 dynamoDB 对话的不同应用程序中使用。我也尝试不使用环境变量,而是直接在方法中使用,但错误仍然存​​在。此外,为了避免尾随空格出现任何问题,我什至在代码中直接使用了凭据。我正在使用 Python v3.4.4。

是否可能还应该设置一个我不知道的 header ?任何提示将不胜感激。

编辑

我现在还创建了新凭证(以确保只有字母数字符号)但仍然没有骰子。

最佳答案

当您连接到真正的 DynamoDB 服务时,您不应该使用 endpoint_url。这实际上仅用于连接到本地服务或非标准端点。相反,只需指定您想要的区域:

dynamoConnection = boto3.resource('dynamodb', region_name='us-west-2')

关于amazon-web-services - 在 aws 上将 boto3 用于 dynamoDB 时出现 InvalidSignatureException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273739/

相关文章:

tkinter - python 为 Canvas 对象进行动画运动的方法

django - 使用自定义管理站点自动注册 Django 身份验证模型

amazon-web-services - CloudFormation 中更新和导入之间的区别

amazon-web-services - GPU 上的 AWS SageMaker

node.js - 无法从本地托管的 Node.js 应用程序连接到 AWS DB

javascript - 将 getItem 与主键和排序键一起使用

python - SciPy 与 MKL 库的兼容性问题

java - 使用Java从EC2中的S3读取CSV文件

python - 如何使用 boto3 有条件地将项目插入 dynamodb 表

javascript - Promise 内的异步调用