【发布时间】:2017-02-15 11:11:10
【问题描述】:
我想分享一个将在不同项目中使用的 terraform 脚本。我知道如何创建和共享模块,但是这个设置有一个很大的烦恼:当我在脚本中引用一个模块并执行 terraform apply 时,如果模块资源不存在,它将被创建,但如果我执行terraform destroy此资源将被销毁。
如果我有两个项目依赖于同一个模块,并且在其中一个项目中我调用terraform destroy,它可能会导致状态不一致,因为该模块正在被另一个项目使用。该脚本可能会因为无法销毁资源而失败,或者会销毁资源并影响其他项目。
在我的场景中,我想在两个项目之间共享网络脚本,并且我希望网络资源永远不会被破坏。我不能只为这个资源创建一个项目,因为我需要在我的项目中以某种方式引用它,唯一的方法是通过它的 ID,我不知道会是什么。
prevent_destroy 也不是一个选项,因为我确实需要销毁共享脚本资源以外的其他资源。此配置使terraform destroy 失败。
有没有办法引用资源,比如通过它的名字,或者有没有其他更好的方法来完成我想要的?
【问题讨论】:
标签: amazon-web-services terraform