【问题标题】:Abstracting configuration in PulumiPulumi 中的抽象配置
【发布时间】:2021-11-03 18:22:33
【问题描述】:

我一直在学习 Pulumi(非常棒的工具!),我有以下场景。假设我有一堆资源想要部署到多个环境中。对于每个环境,我希望有不同的名称(例如,ResourceGroup in dev == "dev"、qa =="qa" 等)。我如何使用 Pulumi 实现这一目标?我想避免将所有配置(针对所有环境)添加到一个 Pulumi 配置文件中。使用少量资源它可能会工作,但使用更多的资源,我猜这个文件将变得不可读。我想到的唯一解决方案是为所有资源创建一个组件,然后为每个环境创建一个堆栈,该堆栈可以将组件与资源一起使用。但也许有更好的选择?

【问题讨论】:

    标签: configuration pulumi


    【解决方案1】:

    Pulumi stacks 是专门为此设计的。您可以拥有一个可以通过堆栈部署到多个环境中的 pulumi 项目文件。

    要为每个堆栈获取不同的名称:

    1. Create a stack 带有环境名称,例如:

      pulumi stack init dev
      
    2. 使用pulumi.getStack() 获取代码中的堆栈名称。

      它看起来像这样:

      const stack = pulumi.getStack()
      
      const resourceGroup = new azure.core.ResourceGroup("group", {
        name: `group-{stack}` // use stack name as part of resource name
        location: "West US"
      });
      
      

      此示例适用于 JS,但您可以在链接文档中找到其他语言的参考

    除了堆栈名称,每个堆栈还可以有单独的 configuration 值 - https://www.pulumi.com/docs/intro/concepts/project/#stack-settings-file


    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 2021-08-11
      • 2021-06-13
      • 2021-12-20
      • 1970-01-01
      • 2016-03-31
      相关资源
      最近更新 更多