Amazon web services 如何通过CDK向DynamoDb添加第三个可索引属性?
我试图遵循一个教程,该教程通过一种叫做索引重载的方法来解释DynamoDB的正确用法。本教程是。我正在通过CDK创建DynamoDB 问题是: 本教程提到索引将包括:分区键、排序键和第三个名为“数据”的字段,该字段本身将用作排序键: 创建一个具有三个通用属性的DynamoDB表:“分区键”、“排序键”和“数据” 三个通用属性将用于支持两个索引:主表索引使用pk作为分区,sk作为排序键,全局二级索引使用sk作为分区,数据作为排序Amazon web services 如何通过CDK向DynamoDb添加第三个可索引属性?,amazon-web-services,database-design,amazon-dynamodb,aws-cdk,Amazon Web Services,Database Design,Amazon Dynamodb,Aws Cdk,我试图遵循一个教程,该教程通过一种叫做索引重载的方法来解释DynamoDB的正确用法。本教程是。我正在通过CDK创建DynamoDB 问题是: 本教程提到索引将包括:分区键、排序键和第三个名为“数据”的字段,该字段本身将用作排序键: 创建一个具有三个通用属性的DynamoDB表:“分区键”、“排序键”和“数据” 三个通用属性将用于支持两个索引:主表索引使用pk作为分区,sk作为排序键,全局二级索引使用sk作为分区,数据作为排序 如上所示,此逻辑涉及3个属性的存在。但是AWS CDK允许添加分区键
如上所示,此逻辑涉及3个属性的存在。但是AWS CDK允许添加分区键和排序键——初始模式描述中不能包含其他属性。在没有“数据”属性的情况下,如何创建如上所述的包含“数据”属性的索引?使用CDK创建DynamoDB表时,有一些可以帮助您定义辅助索引 例如,下面是一段CDK(javascript)代码,它创建了一个DynamoDB表并添加了一个辅助索引:
const table = new dynamodb.Table(this, "Table", {
billingMode: dynamodb.BillingMode.PAY_PER_REQUEST, // Use on-demand billing mode
sortKey: {name: "SK", type: dynamodb.AttributeType.STRING},
partitionKey: {name: "PK", type: dynamodb.AttributeType.STRING}
});
table.addGlobalSecondaryIndex({
indexName: "GSI1",
partitionKey: {name: "GSI1PK", type: dynamodb.AttributeType.STRING},
sortKey: {name: "GSI1SK", type: dynamodb.AttributeType.STRING}
});
我发现问题有两个方面:
表
,而我本应该使用较低级别的L1CfnTable
,它允许更大的定制,并且可以根据CfnTableProps
中的指定需要定义自己的keySchema
和attributeDefinitions