在cloudformation中,您可以在堆栈上设置TTL,该TTL运行删除堆栈的命令:https://aws.amazon.com/blogs/devops/scheduling-automatic-deletion-of-application-environments/
我如何在TF文件中执行此操作?
或者我可以有一个脚本来获取tf文件(状态文件)的创建时间,将其与当前时间进行比较并进行销毁?这也可能有用
在cloudformation中,您可以在堆栈上设置TTL,该TTL运行删除堆栈的命令:https://aws.amazon.com/blogs/devops/scheduling-automatic-deletion-of-application-environments/
我如何在TF文件中执行此操作?
或者我可以有一个脚本来获取tf文件(状态文件)的创建时间,将其与当前时间进行比较并进行销毁?这也可能有用
1 回答
Terraform不会跟踪这些类型的生命周期事件 . 它看起来不像状态文件甚至有关于何时更新的数据(除了后端有的任何元数据,例如文件创建/更新时间) . 我建议你自己跟踪这些数据并模拟terraform之外的生命周期 .
以下是如何使用SSM parameter store来管理此生命周期以保持此状态的示例 .
首先,我为“堆栈”生成唯一标识符(借用CloudFormation术语)并将创建时间存储在SSM参数存储中 . 我们将此UUID传递给Terraform以进行标记和后端配置
然后你可以使用类似下面的内容来有条件地销毁堆栈
$UUID
,如果它已经创建$ threshold秒前 .然后,您可以自动定期对
/terraform/created_at/*
中的每个UUID执行该检查