【问题标题】:DynamoDB global tables using CloudFormation使用 CloudFormation 的 DynamoDB 全局表
【发布时间】:2018-06-07 14:56:14
【问题描述】:

是否可以使用 CloudFormation 模板创建 DynamoDB 全局表?我正在查看这个 AWS 文档 - http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.tutorial.html#creategt_cli

似乎只能使用控制台或 AWS CLI 而不是通过 CloudFormation 模板创建 DynamoDB 全局表?

或者是否有特定的技巧,我将使用 CloudFormation 创建所有副本表,然后使用 AWS CLI 手动创建全局表?

【问题讨论】:

标签: amazon-web-services amazon-dynamodb


【解决方案1】:

DynamoDB Global Table 是在 2017 年底推出的。是的,正如您所提到的,您可以使用 AWS 控制台或 AWS CLI 创建全局表。

但是,使用 cloudformation 模板创建全局表尚不可用。

同时,请使用控制台或 AWS CLI 创建 dynamodb 全局表。

【讨论】:

【解决方案2】:

如果您想通过 cloudformation 来实现,您可以使用自定义资源来实现。它非常简单易用。您可以在自定义资源中使用他们的 createGlobalTable API。

【讨论】:

  • 找不到任何工作示例。任何方向都会有所帮助。
  • 看起来可以通过lambda-based-custom-resource 实现,只是不确定是否值得头痛
  • 我确实尝试并尝试过它,但没有什么可分享的。我面临的困难是在所有区域中创建表,然后验证仅当所有区域表都已创建并准备好处理边缘情况时才创建全局表。
  • createGlobalTable 和friends 仅适用于旧版本的全局dynamodb 表。我正在研究使用新版本的解决方案,但我仍在处理所有细微差别。我认为 AWS 应该有一个全局 dynamodb 表的示例。我们希望将其用作多区域故障转移,并通过流事件将更改协调到 lambda。
  • 我第二个@Brandon,boto3 中的所有*_global_table_* API 仅适用于2017 版全局表。对于 2019 版本,请改用 create_table、describe_table 和 update_table。有人可以从 paul-liang 的上述评论中获取 'lambda-based-custom-resource' 并将其修改为使用 create_table/describe_table 和 update_table 而不是 *_global_table_* API。
【解决方案3】:

您可以使用 "Type: 'AWS::DynamoDB::GlobalTable'" 在 CFN 中创建全局表。一个很好的资源是https://www.capitalone.com/tech/cloud/dynamodb-global-tables-with-cloudformation/。

此功能于 2021 年 5 月 17 日发布,https://aws.amazon.com/about-aws/whats-new/2021/05/amazon-dynamodb-global-tables-now-support-aws-cloudformation/。

【讨论】:

    【解决方案4】:

    你的 hack 深入浅出。使用 cloudformation 创建所有内容(包括流设置)。然后在每个创建的表上手动启用全局表。如果您希望所有区域的 IOPS 相同,那么您的 cloudformation 可能会处理您将来需要的所有更改。

    【讨论】:

      【解决方案5】:

      此功能尚未实施,但已包含在 AWS 路线图中

      GlobalTable:
      Type: AWS::DynamoDB::GlobalTable
      Properties:
      GlobalTableName: !Ref Table
      ReplicationRegions:
       - us-east-1
       - us-west-2
      

      参考

      【讨论】:

        【解决方案6】:

        Cloudformation 现在似乎支持 DynamoDB 全局表。或者,至少它写在文档中,但我不确定这是否能解决您的问题: AWS Cloudformation DynamoDB Global table documentation

        来自文档:

        AWS::DynamoDB::GlobalTable 资源使您能够创建和管理版本 2019.11.21 全局表。此资源不能用于创建或管理版本 2017.11.29 全局表。

        【讨论】:

        • 是的!终于!
        猜你喜欢
        • 1970-01-01
        • 2020-02-27
        • 2022-08-15
        • 2020-03-06
        • 2018-11-03
        • 2023-04-09
        • 2019-06-26
        • 2023-03-10
        • 1970-01-01
        相关资源
        最近更新 更多