我无法找到如何使用aws cli将全局二级索引添加到DynamoDB中的现有表的示例。
这是我迄今为止所知道的docs
任何指针都将不胜感激
答案 0 :(得分:3)
以下是update-table
document。
示例:强>
aws dynamodb update-table --table-name <tableName> --global-secondary-index-updates file://gsi-command.json
创建基于更新,创建或删除操作的JSON文件:
从下面的示例JSON中保留其中一个操作(更新,创建或删除)并相应地更新属性定义
[
{
"Update": {
"IndexName": "string",
"ProvisionedThroughput": {
"ReadCapacityUnits": long,
"WriteCapacityUnits": long
}
},
"Create": {
"IndexName": "string",
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "HASH"|"RANGE"
}
...
],
"Projection": {
"ProjectionType": "ALL"|"KEYS_ONLY"|"INCLUDE",
"NonKeyAttributes": ["string", ...]
},
"ProvisionedThroughput": {
"ReadCapacityUnits": long,
"WriteCapacityUnits": long
}
},
"Delete": {
"IndexName": "string"
}
}
...
]
答案 1 :(得分:1)
“更新表”文档的“选项”部分中有一小部分提到了所需的options specific to creating a new global secondary index,它要求属性定义包含新索引的关键元素。只需将该选项添加到@notionquest提供的示例的末尾就可以了。
aws dynamodb update-table --table-name <tableName> --global-secondary-index-updates file://gsi-command.json --attribute-definitions AttributeName=<attributeName>, AttributeType=<attributeType>
答案 2 :(得分:0)
在现有表中创建全局二级索引。 使用此CLI命令和JSON文件进行更新。
aws dynamodb update-table --table-name sample--cli-input-json file://gsi-update.json --endpoint-url http://localhost:8000
以JSON格式保存参数。
{
"AttributeDefinitions":[
{
"AttributeName":"String",
"AttributeType":"S"
},
{
"AttributeName":"String",
"AttributeType":"S"
}
],
"GlobalSecondaryIndexUpdates":[
{
"Create":{
"IndexName":"index-name",
"KeySchema":[
{
"AttributeName":"String",
"KeyType":"HASH"
},
{
"AttributeName":"String",
"KeyType":"RANGE"
}
],
"Projection":{
"ProjectionType":"ALL"
},
"ProvisionedThroughput":{
"ReadCapacityUnits":5,
"WriteCapacityUnits":5
}
}
}
]
}