Amazon web services 通过AWS cli创建AWS dynamodb表并将其连接到cloudformation堆栈

Amazon web services 通过AWS cli创建AWS dynamodb表并将其连接到cloudformation堆栈,amazon-web-services,amazon-dynamodb,amazon-cloudformation,Amazon Web Services,Amazon Dynamodb,Amazon Cloudformation,是否可以创建aws dynamodb资源并将其附加到cloudformation堆栈后创建 用例:我有一个dynamodb表,我想清除它(删除所有项目)。有两种方法可以做到这一点,一种是删除表,然后重新创建表,另一种是单独删除每一项,这是非常昂贵的。因此,我希望选择删除并重新创建整个表。但是,该资源属于cloudformation堆栈,我希望保持这种状态 有什么想法吗?从堆栈资源中删除该表非常简单,只需从模板中删除该资源,或者使用一种更干净的解决方案,打开或关闭cloudformation资源上

是否可以创建aws dynamodb资源并将其附加到cloudformation堆栈后创建

用例:我有一个dynamodb表,我想清除它(删除所有项目)。有两种方法可以做到这一点,一种是删除表,然后重新创建表,另一种是单独删除每一项,这是非常昂贵的。因此,我希望选择删除并重新创建整个表。但是,该资源属于cloudformation堆栈,我希望保持这种状态


有什么想法吗?

从堆栈资源中删除该表非常简单,只需从模板中删除该资源,或者使用一种更干净的解决方案,打开或关闭cloudformation资源上的。然后可以关闭、部署堆栈(删除表)、打开和重新创建堆栈(重新创建表)

这种技术的真正挑战不是表本身,而是CloudFormation堆栈中对该表的所有引用。您可能会在其他地方引用该表-例如,作为IAM策略中允许访问的资源,在应用程序配置中指定该表,等等。如果是这种情况,您也必须更改这些位置,使用
Fn::If
以创建表的相同条件控制引用的创建。这最终相当复杂,但可以通过组合使用
Fn::If
{Ref:“AWS::NoValue”}
来完成


我在AWS中使用devops已经有好几年了,总的来说,我强烈建议我的开发人员构建一个高效的脚本来清除dynamo表并使用它。通过删除所有项来清除表并不是件小事,但这比在堆栈中条件化创建对表的所有引用要简单得多。归根结底,重置表数据是一项与基础架构管理不同的操作任务,我建议您保持这种方式。也许能让你开始

从堆栈资源中删除表非常容易,只需从模板中删除资源,或者,使用一点更干净的解决方案,在cloudformation资源上使用打开或关闭表即可。然后可以关闭、部署堆栈(删除表)、打开和重新创建堆栈(重新创建表)

这种技术的真正挑战不是表本身,而是CloudFormation堆栈中对该表的所有引用。您可能会在其他地方引用该表-例如,作为IAM策略中允许访问的资源,在应用程序配置中指定该表,等等。如果是这种情况,您也必须更改这些位置,使用
Fn::If
以创建表的相同条件控制引用的创建。这最终相当复杂,但可以通过组合使用
Fn::If
{Ref:“AWS::NoValue”}
来完成


我在AWS中使用devops已经有好几年了,总的来说,我强烈建议我的开发人员构建一个高效的脚本来清除dynamo表并使用它。通过删除所有项来清除表并不是件小事,但这比在堆栈中条件化创建对表的所有引用要简单得多。归根结底,重置表数据是一项与基础架构管理不同的操作任务,我建议您保持这种方式。也许能让你开始

我不推荐它,但你可以先尝试另一个堆栈。保存表的标记,然后删除表,然后使用相同的表名、相同的键、相同的LSI/GSI重新创建表,然后重新应用标记。CF堆栈指的是ARN提供的表,如果您为该表指定相同的名称,则该表将是相同的。我不推荐使用CF堆栈,但您始终可以先使用另一个堆栈进行尝试。保存表的标记,然后删除表,然后使用相同的表名、相同的键、相同的LSI/GSI重新创建表,然后重新应用标记。CF堆栈引用ARN生成的表,如果您给该表起相同的名称,则该表将是相同的。