我是否需要.ebextensions才能使用DynamoDB或SNS等AWS资源?

时间:2018-10-11 17:05:30

标签: python amazon-web-services boto3 configuration-files amazon-elastic-beanstalk

我当时正在使用AWS Elastic Beanstalk构建Python Web应用程序,我想知道是否需要创建 .ebextensions / xyz.config 文件来使用DynamoDB,SNS,等等

这是一个使用boto3的示例代码,我可以从我的Web应用程序进行连接并将数据放入表中,而无需定义任何配置文件...

db = boto3.resource('dynamodb', region_name='us-east-1')
table = db.Table('StudentInfo')

感谢您的投入

2 个答案:

答案 0 :(得分:0)

您不需要 .ebextensions创建可以与Beanstalk一起使用的DynamoDB。但是,您可以,如here所述。本示例使用CloudFormation模板语法指定DynamoDB资源。如果不在.ebextensions文件中,则将通过AWS开发工具包/ Dynamo数据库控制台创建DynamoDB,并使该端点可用于Django应用程序。

您可以specify an SNS topic供Beanstalk用于将事件发布到上述DynamoDB示例中,或者像上面的DynamoDB示例中那样,将事件创建为CFN资源。两种方法之间的区别在于,在前一种方法中,Beanstalk环境拥有SNS主题,而在后一种方法中,底层的CloudFormation堆栈起作用。如果要将SNS主题用于发布环境健康事件以外的其他事情,则可以使用后一种方法。例如,要将SNS主题与DynamoDB集成在一起,必须使用后一种方法(即,将其指定为ebextensions文件中的资源,而不是选项设置)。

答案 1 :(得分:0)

您需要切换为使用IAM角色。了解更多here

我假设您在创建过程中没有更改分配给Elastic Beanstalk(EB)实例的默认角色。 default instance profile role允许EB利用创建各种组件所需的其他AWS服务。

在您了解有关IAM,创建角色和分配权限的更多信息之前,您可以将AWS托管权限附加到该角色以测试您的应用程序(只需搜索Dynamo和SNS)。