如何自动生成 aws dynamodb create-table 的表模式 json?

如何自动生成 aws dynamodb create-table 的表模式 json?

目前,如果我运行aws dynamodb create-table --generate-cli-skeleton,它将为我生成一个模板来填写列定义等,以创建一个新的 dynamodb 表。

我希望能够从另一个 dynamodb 表转储表布局并将其用作命令的 json 输入create-table

但是当我使用aws dynamodb describe-table它生成 json 时,它在结构上与 cli 骨架文件不同。

基于现有表创建这样的 json 文件的更简单的方法是什么?

答案1

我在这里发布了同一问题的答案:

https://stackoverflow.com/questions/42100210/how-to-export-an-existing-dynamo-table-schema-to-json#answer-67695947

概括:

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

相关内容