【问题标题】:Storing parameterized values in cloud formation and referencing it在云形成中存储参数化值并引用它
【发布时间】:2020-12-17 22:19:45
【问题描述】:

有没有办法在 Cloudformation 中存储变量? 我创建了一个资源,其名称是特定于阶段的名称,格式如下:

DeliveryStreamName: {'Fn::Sub': ['firehose-events-${Stage}', 'Stage': {'Ref' : 'Stage' }]}

现在,如果我要在该资源上创建 cloudwatch 警报,我将再次遵循相同的模式:

Dimensions:
   - Value: {'Fn::Sub': ['firehose-events-${Stage}', 'Stage': {'Ref' : 'Stage' }]}

如果我可以将整个值存储在一个变量中,那么引用它会更容易。

我最初以为将其存储在参数中,如下所示:

Parameters:
   FirehoseEvent: {Type:String, Default: 'firehose-events-${Stage}'}

但阶段值似乎没有在这里传递。此资源名称也没有非默认值。 我考虑的另一个选项是使用映射,但这违背了使用${Stage} 的目的。

还有其他我错过的方式吗?

【问题讨论】:

    标签: amazon-web-services yaml amazon-cloudformation


    【解决方案1】:

    很遗憾你没有错过任何东西。 参数不能在其定义中引用其他参数

    我能想到的唯一方法就是通过自定义macro 来做你的事情。最简单的宏只会执行传统的find-and-replace 类型的模板处理。

    但是,开发此类宏所需的时间可能不值得,至少在您在问题中提供的这个简单示例中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-02
      • 2020-04-02
      • 2020-10-12
      • 2014-03-25
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 2018-09-20
      相关资源
      最近更新 更多