Amazon dynamodb 如何更新GlobalSecondaryIndex DynamoDB的索引列?

Amazon dynamodb 如何更新GlobalSecondaryIndex DynamoDB的索引列?,amazon-dynamodb,yaml,Amazon Dynamodb,Yaml,我需要更改DynamoDB中GlobalSecondaryIndex的索引列。首先,我只是更改GSI的“AttributeName”。它不起作用。然后我在网上研究发现我应该删除当前的GSI并创建一个新的GSI。在这里,我使用IndexStatus:DELETING删除当前的GSI。但是,它总是显示错误:遇到不支持的属性IndexStatus。那么如何修复这个错误呢?我正在用yaml编码。要更改GSI的列,您必须使用两步流程 将GSI从表中移除 使用新列将GSI添加回表中 因为您的问题带有yaml

我需要更改DynamoDB中GlobalSecondaryIndex的索引列。首先,我只是更改GSI的“AttributeName”。它不起作用。然后我在网上研究发现我应该删除当前的GSI并创建一个新的GSI。在这里,我使用
IndexStatus:DELETING
删除当前的GSI。但是,它总是显示错误:遇到不支持的属性IndexStatus。那么如何修复这个错误呢?我正在用yaml编码。

要更改GSI的列,您必须使用两步流程

  • 将GSI从表中移除
  • 使用新列将GSI添加回表中
  • 因为您的问题带有
    yaml
    标记,所以我假设您使用的是CloudFormation,或者某种形式的IaC。您需要删除GSI,在不使用GSI的情况下部署更改,添加带有新列的GSI,然后部署它

    更安全的方法可能是使用新列创建新的GSI

  • 使用新列添加新GSI并部署表
  • 更新代码以使用新的GSI并部署新代码
  • 删除带有旧列的旧GSI并部署表

  • 谢谢你的建议。如何删除GSI?如果需要帮助,您需要提供更多信息。如果是CloudFormation,则只需将其从模板中删除。在控制台中,您只需选择GSI并将其删除。有一个CLI命令可以删除它。这取决于你是如何管理你的桌子的,你没有说。这是云的形成。我正在使用serverless.yaml。那么您只需要从模板中删除GSI并重新部署它。如果您可以在表中包含YAML的一个片段,我可以告诉您需要删除什么。