How to refer a derived variable in Cloudformation

2020-07-05 05:22发布

I am looking for small help in cloudformation and could not find help from documentation or may be not searching the question in right way.

Here is the question.

I am getting availability zones for the environment from mappings as follows.

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

}

I need to use the AZ name in my volume naming convention. How could refer the derived variable "AvailabilityZone" again.?

Currently i am doing this.

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

I am doing the same code twice. How can i re-use the derived variable here.?

1条回答
可以哭但决不认输i
2楼-- · 2020-07-05 05:38

Unfortunately, the short answer is you can't. Hopefully someday AWS supports variables in CloudFormation.

There are some hacks that might be of interest. Emphasis on hack!

查看更多
登录 后发表回答