如何通过 Python/Boto3 添加 DynamoDB 全局二级索引

How to add a DynamoDB global secondary Index via Python/Boto3

是否可以在创建全局二级索引后将其添加到现有 DynamoDB table?我将 Python 3.x 与 Boto3 一起使用,但无法找到它们在创建后被添加到 table 的任何示例。

一般来说,是的,可以在创建 table 之后添加全局二级索引 (GSI)。

但是,更改可能需要很长时间才能生效,因为构建 GSI 需要 table 扫描。

如果是boto3,看看the documentation for update_table

例如,您尝试这样的操作:

response = client.update_table(
    TableName = 'YourTableName',
    # ...snip...
    GlobalSecondaryIndexUpdates=[
        {
            'Create': {
                'IndexName': 'YourGSIName',
                'KeySchema': [
                    {
                        'AttributeName': 'YourGSIFieldName',
                        'KeyType': 'HASH'
                    }
                ],
                'Projection': {
                    'ProjectionType': 'ALL'
                },
                'ProvisionedThroughput': {
                    'ReadCapacityUnits': 1,
                    'WriteCapacityUnits': 1
                }
            }
        }
    ],
    # ...snip...
)