如何在Cloudformation中引用派生变量

时间:2017-05-11 22:42:05

标签: amazon-cloudformation

我正在寻找有关cloudformation的小帮助,无法从文档中找到帮助,或者可能没有以正确的方式搜索问题。

这是一个问题。

我从映射获取环境的可用区域如下。

"AvailabilityZone": {
"Fn::Select": [
    "1",
    {
        "Fn::FindInMap": [
            "Environment",
            {
                "Ref": "EnvType"
            },
            "AvailabilityZones"
        ]
    }
]

}

我需要在卷命名约定中使用AZ名称。如何再次引用派生变量“AvailabilityZone”。?

目前我正在这样做。

    {
    "Key": "Name",
    "Value": {
        "Fn::Join": [
            "-",
            [
                {
                    "Ref": "NamePrefix"
                },
                {
                    "Ref": "EnvType"
                },
                "myconstant",
                {
                    "Fn::Select": [
                        "2",
                        {
                            "Fn::Split": [
                                "-",
                                {
                                    "Fn::Select": [
                                        "1",
                                        {
                                            "Fn::FindInMap": [
                                                "Environment",
                                                {
                                                    "Ref": "EnvType"
                                                },
                                                "AvailabilityZones"
                                            ]
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        ]
    }
}

我两次做同样的代码。 我如何在这里重复使用派生变量。?

2 个答案:

答案 0 :(得分:12)

不幸的是,简短的回答是你不能。希望有一天AWS支持CloudFormation中的变量。

有些黑客可能会感兴趣。强调 hack

答案 1 :(得分:-3)

只需使用参数

Parameters:
  DerivedVariable:
    Type: String
    Default: "MyDerivedVariable"

然后,您可以使用!Ref "DerivedVariable"

来引用它

注意:由于这是一个参数,因此可以在通过CLI创建堆栈时覆盖它。更多信息可以在文档中找到:

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html