gpt4 book ai didi

python-3.x - 无法使用python在cdk中为dynamodb添加二级索引

转载 作者:行者123 更新时间:2023-12-04 14:37:32 27 4
gpt4 key购买 nike

我正在尝试创建一个带有分区和排序键的二级索引的 dynamoDB 表。
我可以在没有二级索引的情况下创建表,但还没有找到添加二级索引的方法

我已经查看了这两个资源,但没有找到任何实际显示我需要在我的 cdk python 脚本中使用二级索引创建资源的代码的任何内容
https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html
https://docs.aws.amazon.com/cdk/api/latest/docs/aws-dynamodb-readme.html

这是将创建表的代码

table_name = 'event-table-name'
event_table = dynamoDB.Table(self, 'EventsTable',
table_name=table_name,
partition_key=Attribute(
name='composite',
type=AttributeType.STRING
),
sort_key=Attribute(
name='switch_ref',
type=AttributeType.STRING
),
removal_policy=core.RemovalPolicy.DESTROY,
billing_mode=BillingMode.PAY_PER_REQUEST,
stream=StreamViewType.NEW_IMAGE,
)

这是我需要附加到它的二级索引
secondaryIndex = dynamoDB.GlobalSecondaryIndexProps(
index_name='mpan-status-index',
partition_key=Attribute(
name='field1',
type=AttributeType.STRING
),
sort_key=Attribute(
name='field2',
type=AttributeType.STRING
),
)

我尝试在表创建中添加块并尝试在表上调用 addSecondaryindex 方法。但是两者都失败,要么说意外的关键字要么对象没有属性 addGlobalSecondaryIndex

最佳答案

应在 Table 类上调用 addGlobalSecondaryIndex。

下面的代码(在 typescript 中)非常适合我:

const table = new ddb.Table(this, "EventsTable", {
tableName: "event-table-name",
partitionKey: { name: 'composite', type: ddb.AttributeType.STRING },
sortKey: { name: 'switch_ref', type: ddb.AttributeType.STRING },
removalPolicy: cdk.RemovalPolicy.DESTROY,
billingMode: BillingMode.PAY_PER_REQUEST,
stream: StreamViewType.NEW_IMAGE
});
table.addGlobalSecondaryIndex({
indexName: 'mpan-status-idex',
partitionKey: { name: 'field1', type: ddb.AttributeType.STRING },
sortKey: { name: 'field2', type: ddb.AttributeType.STRING }
});

关于python-3.x - 无法使用python在cdk中为dynamodb添加二级索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58345226/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com