如何通过 Python 访问 AWS 服务?
Posted
技术标签:
【中文标题】如何通过 Python 访问 AWS 服务?【英文标题】:How to access AWS service by Python? 【发布时间】:2016-03-17 13:33:08 【问题描述】:我正在使用 Elastic Beanstalk 运行烧瓶应用程序。我想使用 DynamoDB 作为数据库。为了访问 DynamoDB,我使用了PynamoDB,它通过 botocore 访问 DynamoDB 服务。正如 AWS 文档所说,我在我的 Mac 上创建了 ~/.aws/credentials
的凭证文件并设置了 AWS 用户 access_key。烧瓶应用程序可以访问在我的 Mac 上运行的 DynamoDB。但是,通过eb deploy
部署到 Elastic Beanstalk 后,我不知道如何添加凭证文件。
我试过了:
-
复制我的项目根目录下的凭证文件。并创建一个配置文件:
02_dynamodb.config
在.ebextensions
下。
添加配置文件后部署失败。
-
我已经阅读了 botocore 文档,上面说我可以通过会话设置 access_key。但是,PynamoDB 无法使用自定义会话。如果需要,它将创建一个会话,该会话将从
~/.aws/credentials
或.boto
读取access_key
我已阅读大量文档,但不知道在将应用程序部署到 Elastic Beanstalk 后如何将 access_key 设置为 botocore 应用程序。 AWS 文档只告诉我如何在我的开发 Mac 上设置 access_key。
任何帮助将不胜感激。
更新 谢谢@mbaird!解决方案是授予 aws-elasticbeanstalk-ec2-role 的 DynamoDB 访问权限!
【问题讨论】:
您可以从运行代码的机器的 shell 手动设置环境变量。即“导出 AWS_ACCESS_KEY_ID=值”。您还需要对秘密访问密钥和区域执行此操作。见链接:docs.aws.amazon.com/cli/latest/userguide/… 【参考方案1】:执行此类操作的首选方法是授予对分配给您的 Elastic Beanstalk 服务器的 IAM 角色的所需访问权限。那么您根本不必创建凭据文件。
您可以阅读将其视为最佳做法的原因 here。
【讨论】:
以上是关于如何通过 Python 访问 AWS 服务?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 SSH 隧道通过 AWS 堡垒/跳转服务器从笔记本电脑访问 phpMyAdmin 到使用 .ssh/config 的 EC2 实例
aws 如何从生产环境中的 lambda 函数访问 ECS 服务