Terraform:如果父项部分完成并出现错误,是否会创建依赖资源?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Terraform:如果父项部分完成并出现错误,是否会创建依赖资源?相关的知识,希望对你有一定的参考价值。

请注意,这是一个关于自定义构建提供程序如何处理错误流的可能性的设计问题。无论这种流程是否良好......这是另一个问题。

假设有2个资源(A和B),其中B依赖于A.

当我运行terraform apply时,会创建资源A(意味着后端创建了一个带有ID的对象),但在创建任务之后处于错误(错误)状态。我想构建的是一个能够识别这种不良状态的提供者,并在它继续尝试创建资源B之前就停在那里。但是,我也想要一种让Terraform能够清理的方法。处于错误状态的资源(通过销毁或污染),甚至在我手动修复后端问题后不再重新创建它。

也许还有其他流动的可能性,但这里有两个我能想到的:

  1. 由于后端给了我们一个ID,我们也在Terraform资源中设置了ID,但是从Create方法返回时出错了。但是,我不确定Terraform接下来会做什么。它可以: A.继续尝试创建资源B,因为A有ID(不需要) B.拒绝尝试创建资源B,因为创建A(期望)返回错误 据我所知,Terraform的默认行为似乎是做选项A(如果我错了,请纠正我)。我可以让它做选项B吗?
  2. 另一个选项是不设置Terraform ID,即使后端有一个对象,但它确实有一个ID。好消息是Terraform不会转向资源B,但重要的是资源A实际上变成了孤儿;它存在于后端,但Terraform无法清理它。

我猜这不是一个独特的用例,但没有任何运气找出基于文档的解决方案。这里的任何指导将不胜感激!

以上是关于Terraform:如果父项部分完成并出现错误,是否会创建依赖资源?的主要内容,如果未能解决你的问题,请参考以下文章

Terraform - 长时间运行 Azure 部署错误

带有特殊字符的 terraform 标签值

Terraform 上的“无效的旧提供程序地址”错误

Terraform:尝试使用列表创建一系列子网 cidr,但出现错误“需要字符串”

Terraform 0.12:桶的输出列表,用作另一个模块的输入并迭代

ORA-02291: 违反完整约束条件 - 未找到父项关键字