amazon-web-services - 一次应用一个 terraform 模块

标签 amazon-web-services terraform

efx/
...


    aws_account/
                nonprod/
                          account-variables.tf
                          dev/
                              account-variables.tf
                              common.tf
                              app1.tf
                              app2.tf
                              app3.tf 
                              ...
    modules/
            tf_efxstack_app1
            tf_efxstack_app2
            tf_efxstack_app3
            ...

在给定的环境中(上面示例中的 dev),我们有多个模块(app1、app2、app3 等),这些模块基于我们在基础架构中运行的各个应用程序。

我正在尝试一次更新一个模块的状态(例如 app1.tf)。我不确定我该怎么做。

用例:我只想更新模块的一个 LC 以使用最新的 AMI 或安全组。

我在 terrafrom 中尝试了 -target 命令,但这似乎不起作用,因为它不检查 terraform 远程状态文件。
terraform plan -target=app1.tf
terraform apply -target=app1.tf

因此,不会发生任何变化。我相信这是一个 bug与地形。

有什么想法可以做到这一点吗?

最佳答案

Terraform 的 -target应该仅用于特殊用例,并且您应该在使用它时真正知道自己在做什么。如果您确实需要一次定期针对不同的部分,那么您应该将您的应用程序分成不同的目录,以便您可以轻松地一次应用整个目录。

这可能意味着您需要使用数据源或重新考虑事物的结构,但这意味着您还限制了任何单个 Terraform 操作的爆炸半径,这总是有用的。

关于amazon-web-services - 一次应用一个 terraform 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48780445/

相关文章:

amazon-web-services - Terraform:为新创建的实例正确分配静态私有(private) IP

mysql - 创建 Amazon RDS 数据库的本地副本

amazon-web-services - 应用程序负载均衡器在弹性beantalk和kubernetes之间分配

amazon-web-services - Amazon SNS 发送通知所用时间过长

provisioning - Terraform,寻找在命令中使用双引号的简单方法?

amazon-web-services - 如何在 AWS-ECR 中为 Docker 镜像使用环境变量?

amazon-web-services - aws云形成为github添加公钥

javascript - 如何使用 lambda 在 dynamoDB 中创建对象?

azure - 使用 Terraform 阻止允许共享访问 key

azure - 设置 AKS 群集静态 IP、负载均衡器和入口 Controller 的正确方法是什么?