如何通过Python访问AWS服务?

时间:2015-12-11 15:24:13

标签: python amazon-web-services flask elastic-beanstalk amazon-dynamodb

我正在使用Elastic Beanstalk运行一个烧瓶应用程序。我想使用DynamoDB作为数据库。为了访问DynamoDB,我使用PynamoDB,它通过botocore访问DynamoDB服务。正如AWS文档所述,我已在Mac上的~/.aws/credentials创建了凭证文件,并设置了AWS用户access_key。烧瓶应用程序可以访问在我的Mac上运行的DynamoDB。但是,在eb deploy部署到Elastic Beanstalk之后,我不知道如何添加凭证文件。

我试过了:

  1. 将凭证文件复制到我的项目根目录下。并在02_dynamodb.config下创建配置文件.ebextensions
  2. commands:
      01makecredentials:
        command: mkdir ~/.aws/;cp ./credentials ~/.aws/credentials
    

    添加配置文件后无法部署。

    1. 我已经阅读了botocore文档,该文档说我可以按会话设置access_key。但是,PynamoDB无法使用自定义会话。如果需要,它将创建一个会话,会话将从~/.aws/credentials.boto
    2. 读取access_key

      我已阅读了大量文档,但在将应用程序部署到Elastic Beanstalk后,不知道如何将access_key设置为botocore应用程序。 AWS文档仅告诉我如何在我的开发Mac上设置access_key。

      任何帮助都会受到赞赏。

      更新 谢谢@mbaird!解决方案是为aws-elasticbeanstalk-ec2-role授予DynamoDB Access权限!

1 个答案:

答案 0 :(得分:3)

执行此类操作的首选方法是提供对分配给Elastic Beanstalk服务器的IAM角色的必需访问权限。然后,您根本不必创建凭据文件。

您可以阅读这被视为最佳做法的原因here