【问题标题】:AWS Beanstalk - Customize app to create dynamodb tablesAWS Beanstalk - 自定义应用程序以创建 dynamodb 表
【发布时间】:2014-12-10 00:12:59
【问题描述】:

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

带有字段的TestTable:

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

.

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

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

【问题讨论】:

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


    【解决方案1】:

    Dynamo DB 是无模式的,因此您无需指定 field3、field4 等。您可以指定关键模式,如您链接的页面上所示。页面上的具体示例仅对 dynamo DB 表使用哈希键,但您也可以指定范围键 (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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-07-25
        • 2021-04-27
        • 2020-02-14
        • 2015-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-03
        • 1970-01-01
        相关资源
        最近更新 更多