AWS Beanstalk - 自定义应用程序以创建dynamodb表

时间:2014-12-08 05:27:54

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

我正在尝试使用AWS beanstalk部署我的应用程序(nodejs)。我想在部署期间创建DynamoDB表。我正在尝试使用beanstalk的自定义功能,这意味着我正在尝试在.exextensions下编写配置文件(YAML)。我想创建一个像这样的表:

包含字段的TestTable:

field 1 (hash key),
field 2 (range key),
field 3,
field 4, ..

在Google上搜索时,我只能找到包含单个字段的配置文件示例(例如http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-environment-resources-dynamodb.html)。

查找配置文件的一些示例,其中包含多个字段的表或包含Beanstalk的YAML模板的完整功能/关键字的文档。

2 个答案:

答案 0 :(得分:1)

Dynamo DB是无模式的,因此您无需指定field3,field4等。您可以指定您链接的页面上显示的密钥模式。页面上的特定示例仅使用发电机数据库表的散列键,但您也可以指定范围键(field2),类似于指定散列键的方式。除了KeySchema中的HASH密钥之外,配置文件的语法还需要有RANGE密钥。它遵循cloudformation资源描述语法。有关详细信息,请参阅以下链接:

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-keyschema.html

答案 1 :(得分:0)

是否要在每个部署中创建一个表格?
如果表是您的应用使用的资源,我会使用CloudFormation来定义您的模板(您需要的AWS资源列表,例如 - 3台EC2计算机,负载平衡器,RDS服务器, DynamoDB表和ElasticBeanstalk应用程序和环境)。然后,您的应用程序将仅获取对表名称的引用并使用它(可以使用环境变量完成)。

如果你之前没有使用过CloudFormation,你可能会在开始时找到一个轻微的学习曲线,但最后它相对简单。模板是带有声明的JSON文件,在您上传模板后,您可以创建它的许多实例(例如 - 生产和登台)。
您可以在此处Elastic Beanstalk找到使用CloudFormation的摘要 - http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-elasticbeanstalk.html