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

我试过了:


将凭据文件复制到我的项目根目录下。并创建一个配置文件:02_dynamodb.config下的.ebextensions


命令:
  01makecredentials:
    命令:mkdir〜/ .aws /; cp ./credentials〜/ .aws / credentials


添加配置文件后,部署失败。


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


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

任何帮助将不胜感激。

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

最佳答案

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

您可以阅读here被认为是最佳做法的原因。

10-07 13:28
查看更多