为 AWS Cloudformation 中的资源名称传递标签键和值

Pass tag Key and Value for resource name in AWS Cloudformation

我有我的 cloudformation json 模板,其中包含资源(具体为 VPC)标签映射如下:

"Tags" : [ {"Key" : "Name", "Value" : "nameofresource"} ]
现在我是 运行 这个来自 shell 脚本的命令

aws cloudformation create-stack --stack-name stackname --template-body file://template.json

我想从参数中传递名称。我尝试使用

--parameters ParameterKey=Name,ParameterValue=somevalue

在我的模板之后。但它会引发错误。我还尝试用 "Ref" : "paramkeyvalue" 替换 JSON 中的 "Value" 并根据 cli 的要求传递它。 如何从参数传递名称?

将参数Key和value名称替换为ParameterKey和ParameterValue

--parameters ParameterKey=Name,ParameterValue=somevalue

"Tags":[{"ParameterKey":"Name","ParameterValue":"somevalue"}]

命令:

  aws cloudformation create-stack --stack-name "MyVPC" --template-body file://test.yaml --parameters ParameterKey=Name,ParameterValue="MyVPC"

test.yaml

{
    "Parameters": {
        "Name": {
            "Type": "String",
            "Default": "MyName"
        }
    },
    "Resources": {
        "myVPC": {
            "Type": "AWS::EC2::VPC",
            "Properties": {
                "CidrBlock": "10.0.0.0/16",
                "EnableDnsSupport": "false",
                "EnableDnsHostnames": "false",
                "InstanceTenancy": "default",
                "Tags": [{
                    "Key": "Name",
                    "Value": {
                        "Ref": "Name"
                    }
                }]
            }
        }
    }
}