有人更改了我使用Terraform设置的AWS Console上的某些内容。我不想覆盖他们的更改。我该怎么办?

问题描述 投票:0回答:1

我使用terraform使用terraform apply为AWS Systems Manager设置参数。为了使用aws_ssm_parameter,您需要提供一个值(即密码或其他内容)。没关系,但是如果有人更改或更新了参数(可以并应该),那么在我的下一个地形计划中,它将检测到此更改并继续覆盖更改的值。我不希望Terraform那样做。

我可以在Terraform中使用哪些特定命令来获取更新的参数,而不覆盖已更改的参数?

这会是:

terraform refresh && terraform plan

就这些吗?

amazon-web-services terraform
1个回答
0
投票

否,terraform refresh不是为此目的而设计的,下面是terraform刷新的一个很好的示例

例如,假设您的状态文件包含3个EC2实例,i-abc123,i-abc124,i-abc125的实例ID,然后删除在Terraform之外的i-abc124。运行Terraform刷新后,计划将表明它需要在销毁时创建第二个实例计划表明它只需要销毁第一个和第三个实例(并且不会破坏丢失的第二个实例)。

what-does-terraform-refresh-really-do

最好在terraform文件中进行更改,然后再在terraform中应用更改,方法是在基础结构上进行这样的更改terraform将在需要时更改此类资源,或者将根据资源类型重新创建。

例如,在远程上更改实例类型,然后运行terraform apply,它将终止新实例,并将在Terraform状态文件中创建具有所需类型的实例。

here有很长的定义,但是我建议配置一个管道来处理这些更改,而不是在远程上创建更改。

© www.soinside.com 2019 - 2024. All rights reserved.