【问题标题】:What's the equivalent of Terraform modules in Pulumi什么相当于 Pulumi 中的 Terraform 模块
【发布时间】:2021-12-29 03:24:17
【问题描述】:

我一直试图找到这个问题的答案,这个问题与 Pulumi 中的 Terraform 模块等效,最接近的答案是这个链接到这个blog。请记住,我也是使用 Pulumi 的初学者。

使用 Terraform,您可以创建一个包含所有模块的 git 存储库,对其进行版本化并使用 source = "git@github.com:xyz" 将其拉入各种其他 git 存储库。 Terraform 还允许您根据条件(例如,区域、帐号或环境)打开和关闭资源(模块和资源使用 count 方法)。

显然 Pulumi 没有这个概念,看起来你需要在每个存储库中复制你的代码,或者创建一个包含所有代码的巨大单体存储库。我还想知道功能标志的最佳做法是什么,为您的每个特定堆栈打开和关闭资源,您将为此使用什么样的条件。

再次感谢您的精彩片段!

【问题讨论】:

    标签: terraform pulumi


    【解决方案1】:

    一般来说,您应该使用您选择的语言创建库,并在其中放置可重用的函数、类和组件。例如,如果您使用 TypeScript,您可以创建一个 NPM 模块(公共或私有),其中包含您希望跨项目和团队重用的任何代码。

    更具体地说,如果您正在寻找一种将多个资源组合成可重用的高级抽象的方法,您可以将其实现为Component Resource。组件将接受输入,在其构造函数中实例化一些资源,并返回输出值。您仍然可以将一个组件(或多个组件)打包为可重用库。

    Pulumi 还允许您创建多语言组件,您可以在其中以一种语言实现它,然后以所有支持的语言发布它以供所有人使用。您可以在 Pulumi 注册表中以包的形式发布多语言组件,以简化发现和安装。在Pulumi Packages and multi-language Components 中阅读更多内容,并在Registry 中查看其他组件。

    【讨论】:

    • 感谢 Mikhail 提供的信息 :) 这正是我要找的!无论如何,如果你有一个关于如何创建这个 npm 包的简单示例的链接,那就太棒了。我实际上正在使用 TypeScript,它对我的​​情况很有帮助:) 再次感谢!
    • 我没有比 NPM 教程更好的东西了 docs.npmjs.com/creating-node-js-modules
    • 再次感谢! :) 这真的很有帮助,米哈伊尔
    猜你喜欢
    • 1970-01-01
    • 2018-08-20
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2018-12-15
    • 2020-04-26
    相关资源
    最近更新 更多