【问题标题】:How to delete more than one Global Secondary Index from the CloudFormation at once?如何一次从 CloudFormation 中删除多个全局二级索引?
【发布时间】:2018-06-03 21:03:19
【问题描述】:

我有许多在 CloudFormation 模板中描述的全局二级索引。 当我尝试删除多个时,我收到此错误“发生错误:TodosDynamoDbTable - 无法在一次更新中执行多个 GSI 创建或删除。”。

如何一次从模板中删除多个 GSI?也许我可以从表中手动删除它们,然后执行模板更新,或者我可以使用一些属性(如“DependsOn”)?

【问题讨论】:

标签: amazon-web-services amazon-dynamodb amazon-cloudformation


【解决方案1】:

正如 Miles 所提到的,目前无法将标准 CloudFormation 模板与 DynamoDB 资源一起使用。 但是,您可以在 CloudFormation 中创建一个自定义资源,该资源会触发一个 Lambda,该 Lambda 可以在您创建/更新/删除 GSI 时触发

【讨论】:

    【解决方案2】:

    很遗憾,这是不可能的,至少现在不可能。您必须多次更新堆栈,一次删除一个。

    【讨论】:

    • 栈应该如何多次更新?假设经过数月的工作投入生产后,有一个巨大的版本。我们正在使用无服务器框架。因此,我们可能拥有使用这些多个 GSI 的所有代码。我将如何编辑此代码以一次创建 1 个 GSI?如果我删除了 GSI ,但它正在查询中使用,部署不会中断吗?还是我们可以在查询中保留 GSI 名称但在之后创建它?
    猜你喜欢
    • 2018-05-29
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多