在AWS Cloudformation中传递资源名称的标记键和值

时间:2018-02-15 04:39:38

标签: json amazon-web-services amazon-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

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

2 个答案:

答案 0 :(得分:1)

将参数Key和value name替换为ParameterKey和ParameterValue

- 参数ParameterKey = Name,ParameterValue = somevalue

“Tags”:[{“ParameterKey”:“Name”,“ParameterValue”:“somevalue”}]

答案 1 :(得分:1)

<强>命令:

  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"
                    }
                }]
            }
        }
    }
}