目前,如果我运行aws dynamodb create-table --generate-cli-skeleton
,它将为我生成一个模板来填写列定义等,以创建一个新的 dynamodb 表。
我希望能够从另一个 dynamodb 表转储表布局并将其用作命令的 json 输入create-table
。
但是当我使用aws dynamodb describe-table
它生成 json 时,它在结构上与 cli 骨架文件不同。
基于现有表创建这样的 json 文件的更简单的方法是什么?
答案1
我在这里发布了同一问题的答案:
概括:
AWS_PROFILE=xyz aws dynamodb describe-table --table-name MyTable > mytable_full.json
# Pull out just what is minimally needed for table-creation:
#
# TableName
# KeySchema
# AttributeDefinitions (must only contain attributes used in keys)
# Global/Local Secondary Indexes
# Defaults BillingMode to PAY_PER_REQUEST
# (any provisioning can be set up manually based on load)
jq <mytable_full.json '.Table | {TableName, KeySchema, AttributeDefinitions} + (try {LocalSecondaryIndexes: [ .LocalSecondaryIndexes[] | {IndexName, KeySchema, Projection} ]} // {}) + (try {GlobalSecondaryIndexes: [ .GlobalSecondaryIndexes[] | {IndexName, KeySchema, Projection} ]} // {}) + {BillingMode: "PAY_PER_REQUEST"}' >mytable.json
AWS_PROFILE=xyz aws dynamodb create-table --cli-input-json file://mytable.json