【问题标题】:Terraform | Change a resource created by a public module地形 |更改由公共模块创建的资源
【发布时间】:2022-02-09 09:35:50
【问题描述】:

假设我在无法直接更改的公共或内部模块的帮助下创建 AWS ECS 集群。该模块正在创建,除了 ECS,假设是几个 SG,一些 alb,也许是 ACM 证书等。这一切都很好,但是,为了这个问题,我不喜欢 SG 配置,我想更改它们,但开发人员没有为此提供 var。

有没有办法让我引用该模块创建的特定 SG(或任何其他资源),然后覆盖/更改/替换其配置?

或者我是否必须在该模块的存储库中创建 PR 以添加必要的变量/更改?

【问题讨论】:

  • 公关是要走的路。
  • Terraform 中尚不存在此语言功能,但在其他声明性语言中是可能的。您目前必须 PR。

标签: amazon-web-services module terraform hcl


【解决方案1】:

在 Terraform 中,模块作者有责任决定该模块的范围并调整其输入变量和输出值以满足该范围。从调用者的角度来看,无法向模块添加额外的自定义功能,因为这会导致您的自定义有效地成为模块作者不知道的模块未来更改的兼容性限制,因此无法预测。

如果某个特定模块不能满足您的需求,那么不幸的是,您的选择与大多数语言生态系统中的第三方库的选择大致相同:

  • 向维护人员发送功能请求(也可能是实现该功能的拉取请求),看看维护人员是否愿意在他们的范围内接受您的新要求。
  • 假设该模块使用合适的开源许可证,请将其用作您自己的模块的基础,该模块满足与原始模块类似的需求,但经过扩展以满足您的特定要求。

【讨论】:

    猜你喜欢
    • 2019-08-26
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2022-01-01
    • 1970-01-01
    • 2011-07-11
    • 2013-07-03
    相关资源
    最近更新 更多