running terraform只适用于新的输出



我想在terraform_remote_state数据源中添加一个输出例如:

output "acm_certificate_arn" {
value       = module.acm_certificate.arn
description = "arn main certificate"
}

计划包括:

Changes to Outputs:
+ acm_certificate_arn = [
+ "arn:aws:acm:eu-west-123:11111111111:certificate/e6f1edf300--f33fl-number",
]

由于各种原因,我无法运行apply/refresh,远程基础设施更改,状态不是最新的。是否有一种方法可以运行类似plan—target=output.acm_certificate_arn的东西?或者我唯一的选择是修改状态文件并添加我需要的输出?(尝试应用目标资源没有变化的空计划,没有运气)

因为你的输出值可能间接依赖于你模块内声明的一些资源,即使Terraform确实支持目标输出值,-target也不会是一个可行的答案:-target选择给定对象和它依赖于的一切,因此仍然会选择你似乎想要避免更新的所有资源。

相反,对于仅刷新计划来说,这可能是一个很好的情况,这是一种非默认的计划模式。该规划模式将告诉Terraform跳过要求提供者比较配置和状态并提出更改,而只关注使用现有对象的最新状态更新状态,并重新评估依赖结构(如输出值)。

terraform apply -refresh-only

这只是普通计划和应用流程的一个变体,它禁用了计划进行更改的步骤,因此您仍然有机会在将结果提交到状态之前检查Terraform提议做什么。但是,对于仅刷新计划,应用该计划仅意味着基于刷新结果创建一个新的状态快照,而不会采取任何操作来修改属于您的资源的远程对象。

相关内容

最新更新