如何更新无服务器框架中已部署的AWS资源?

问题描述 投票:0回答:1

如标题,我想更新或编辑已部署到 AWS 的 DynamoDB 表的一些配置。我目前正在一个 serverelss.yml 文件中管理所有资源。当我更改表的某些配置并尝试通过 Serverless 框架进行部署时,错误是

CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename "Test Dynamo Table" and update the stack again.

我发现的唯一方法是使用更新的配置创建新数据库,迁移到新数据库并手动删除旧数据库(通过AWS控制台)。 或者另一种方法可能是在单独的 serverless.yml 中创建 AWS 资源,这样我就不必每次都删除并重新创建所有资源。我只能删除特定资源。

但是我想知道是否可以通过无服务器框架或其他 IaC 工具来解决这个问题?我只是想知道更新现有资源的编程方式是什么。

目前,我通常做的是运行

sls remove
并重做
sls deploy

aws-lambda amazon-dynamodb aws-cloudformation serverless-framework aws-serverless
1个回答
0
投票

您很可能正在更新不支持的内容,例如更改表或索引的分区或排序键。

这不是对无服务器的限制,而是对 DynamoDB 的限制。

当自定义命名的资源需要替换时,CloudFormation 无法更新堆栈。重命名“Test Dynamo Table”并再次更新堆栈

因此,您收到的异常告诉您,如果您想更新表,则必须替换它。这就是为什么您在创建新项目时会看到成功。

© www.soinside.com 2019 - 2024. All rights reserved.