我正在使用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被认为是最佳做法的原因。