【发布时间】:2020-02-27 15:10:15
【问题描述】:
我们可以从 AWS 控制台创建、编辑、删除组,以维护 DynamoDb 表的逻辑分组。我搜索了 AWS 文档和论坛,但没有找到有关如何使用 CloudFormation 创建此 DynamoDb 表组或如何使用 AWS .NET SDK 在组内创建表的方法。 这甚至可能吗?
【问题讨论】:
标签: amazon-web-services amazon-dynamodb
我们可以从 AWS 控制台创建、编辑、删除组,以维护 DynamoDb 表的逻辑分组。我搜索了 AWS 文档和论坛,但没有找到有关如何使用 CloudFormation 创建此 DynamoDb 表组或如何使用 AWS .NET SDK 在组内创建表的方法。 这甚至可能吗?
【问题讨论】:
标签: amazon-web-services amazon-dynamodb
表组仅存在于 AWS 控制台 UI 上。 AWS 上没有这样的资源,这就是它们在 CloudFormation 和 CDK 上都不可用的原因。
【讨论】:
DDBTableGroupKey-{yourgroupname}
您可以使用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-PROD、PROD标记相关表。
然后它们应该作为一个组出现在控制台中。
在 CDK 中,您可以使用以下方法创建它:
const group = "lolprod"
cdk.Tag.add(this, `DDBTableGroupKey-${group}`, group)
和
new resourcegroups.CfnGroup(this, id, {
name: group,
resourceQuery: {query: '...', type: '...'}
})
【讨论】: