【问题标题】:how can I create this DynamoDb table group with CloudFormation?如何使用 CloudFormation 创建这个 DynamoDb 表组?
【发布时间】:2020-02-27 15:10:15
【问题描述】:

我们可以从 AWS 控制台创建、编辑、删除组,以维护 DynamoDb 表的逻辑分组。我搜索了 AWS 文档和论坛,但没有找到有关如何使用 CloudFormation 创建此 DynamoDb 表组或如何使用 AWS .NET SDK 在组内创建表的方法。 这甚至可能吗?

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    表组仅存在于 AWS 控制台 UI 上。 AWS 上没有这样的资源,这就是它们在 CloudFormation 和 CDK 上都不可用的原因。

    【讨论】:

    • 可以创建一个资源组,使用标签键自动被 DDB 控制台拾取:DDBTableGroupKey-{yourgroupname}
    • @RandallHunt 这对我来说是新的。我会尽快更新我的回复。谢谢!
    • 是的,我不知道在您编写原始答案时是否支持它。幸运的是它现在可以工作了!
    【解决方案2】:

    您可以使用resource groups API 创建一个由前缀为DDBTableGroupKey- 的标签定义的资源组,DynamoDB 控制台会自动将其拉入。

    例如

    import json
    import boto3
    
    rg = boto3.client('resource-groups')
    resource_query = json.dumps({
        "ResourceTypeFilters": ["AWS::DynamoDB::Table"], 
        "TagFilters": [
            {"Key": "DDBTableGroupKey-PROD", "Values": ["PROD"]}
        ]
    })
    rg.create_group(
        Name='PROD',
        ResourceQuery={'Type': 'TAG_FILTERS_1_0', 'Query': resource_query}
    )
    

    然后用DDBTableGroupKey-PRODPROD标记相关表。

    然后它们应该作为一个组出现在控制台中。

    在 CDK 中,您可以使用以下方法创建它:

    const group = "lolprod"
    cdk.Tag.add(this, `DDBTableGroupKey-${group}`, group)
    

    new resourcegroups.CfnGroup(this, id, {
        name: group,
        resourceQuery: {query: '...', type: '...'}
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-10
      • 2018-12-03
      • 2019-10-30
      • 2021-11-17
      • 2023-03-13
      • 2020-02-27
      • 2021-04-14
      • 2017-12-13
      相关资源
      最近更新 更多