误删Terraform tfstate文件,能否从AWS Glue环境重新生成?
恢复Terraform状态文件以匹配现有AWS Glue资源
可以通过terraform import命令将已存在的AWS Glue资源关联回本地状态文件,无需删除重建。具体步骤如下:
- 确认配置一致性:先检查你的
main.tf中定义的Glue数据库、表的参数(如名称、存储位置、描述等),必须和AWS控制台中已存在的资源完全一致,否则导入会失败。 - 重新初始化Terraform:如果还没执行,先运行:
terraform init - 导入Glue数据库:使用
import命令将已存在的数据库关联到状态文件,命令格式为:
比如你配置里的资源别名是terraform import aws_glue_catalog_database.<资源别名> <数据库名称>testdb,数据库名称也是testdb,执行:terraform import aws_glue_catalog_database.testdb testdb - 导入Glue表:针对关联的Glue表,导入命令格式为:
假设表的资源别名是terraform import aws_glue_catalog_table.<资源别名> <数据库名称>/<表名称>test_table,对应数据库testdb、表名test_table,执行:terraform import aws_glue_catalog_table.test_table testdb/test_table - 验证状态同步:完成导入后运行
terraform plan,如果输出显示No changes. Your infrastructure matches the configuration.,说明状态文件已成功和远程资源同步,后续可正常使用Terraform命令管理这些资源。
你之前执行terraform apply报错,是因为tfstate文件丢失后,Terraform认为这些资源尚未创建,尝试重复创建时触发了AWS的资源已存在校验。通过import命令将现有资源纳入Terraform的状态管理后,就能解决这个问题。
内容的提问来源于stack exchange,提问作者Perez
相关产品推荐
相关产品推荐

