Terraform 从空状态刷新?
Posted
技术标签:
【中文标题】Terraform 从空状态刷新?【英文标题】:Terraform refresh from empty state? 【发布时间】:2019-01-22 05:17:26 【问题描述】:我正在为我们的私有云开发一个自定义 Terraform 提供程序,但我在构建之间的状态文件方面遇到了困难。
基本上每次构建自定义提供程序的新版本时,我都需要执行terraform init
,这似乎消除了现有状态。
我有一些资源仍然存在,但 Terraform 认为它们不存在,因为它的状态文件是空的。
我尝试执行terraform refresh
,但它什么也没做:
空的或不存在的状态文件。
刷新不会做任何事情。刷新不会出错或返回错误 退出状态,因为许多自动化脚本使用刷新、计划、然后 申请,可能还没有第一次运行的状态文件。
我在文档中看到可以import
现有基础设施,但为此提供者需要实现导入功能。
有没有办法强制 Terraform 刷新状态?
【问题讨论】:
terraform init
绝对不应该消灭国家。你确定你一开始就正确地写出状态吗?
@ydaetskcoR 我可能假设terraform init
擦除了状态。状态写得很好。我还在更新 terraform 之外的资源以执行一些测试等,因此在某些时候我可能会处于不同步状态。但也许import
是为尚未处于状态但处于配置中的资源刷新状态的唯一方法?
【参考方案1】:
实际上我需要为我的提供者实现import
函数,因为terraform refresh
无法刷新不在State
中的资源。
【讨论】:
以上是关于Terraform 从空状态刷新?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 terraform 在 AWS API Gateway method_response 中指定内容类型标头?
通过 terraform 创建 Azure App 服务时抛出错误此处不应出现名为“zone_redundant”的参数