我正在导入现有资源(AWS RDS),但terraform plan
命令显示了摘要:
#aws_db_instance.my_main_db must be replaced
+/- resource "aws_db_instance" "my_main_db" {
~ address = x
allocated_storage = x
+ apply_immediately = x
~ arn = x
~ username = x
+ password = x
(others arguments with alot of +/- and ~)
}
my_main_db
联机包含持久性数据。我的问题是标题。现有数据库运行terrafrom apply
是否安全?我不想丢失所有客户数据。
最有可能不安全,但实际上只有熟悉该应用程序的人才能做出该决定。查看属性以及将要更改或重新创建的内容。除非您对所有这些属性的更改感到满意,否则这是不安全的。
“替换”意为销毁现有对象并创建一个新对象来替换它。 +/-
符号(与-/+
相对)指示该特定资源将在“销毁前创建”模式下被替换,该模式在操作期间将短暂存在两个数据库实例。 (这在实践中可能会或可能不会,取决于实例名称是否在此操作中更改。)
特别是对于 not 需要aws_db_instance
,销毁实例等同于在RDS控制台中删除实例:除非您拥有数据库内容的备份,否则它将丢失。即使您拥有备份,也需要通过RDS控制台或API而不是Terraform对其进行还原,因为Terraform不了解备份/还原机制,因此其“创建”的思想是产生一个全新的空数据库。总而言之,直接应用这样的计划肯定是