在userData中使用带有awscli的Cloudformation ref

时间:2016-09-04 06:21:00

标签: aws-cli amazon-cloudformation

"aws ec2 create-tags --resources xxxxxx --tags Key=Team,Value=everybody --region { \"Ref\" : \"region\" } --out text\n"

我在我的Cloudformation userData中使用的上述行/命令,它没有被执行,我在调试时遇到以下错误:

aws: error: argument --region: Invalid choice, valid choices are:

ap-southeast-1 | us-gov-west-1 
ap-northeast-1 | eu-west-1 
fips-us-gov-west-1 | us-west-1 
us-west-2 | us-east-1 
cn-north-1 | ap-southeast-2 
sa-east-1

我的区域名称被视为Cloudformation脚本的输入参数。这就是我在ref选项中使用--region的原因。

这是错的吗? 是否可以在Cloudformation中使用ref和awscli命令?

由于

1 个答案:

答案 0 :(得分:1)

UserData是您的Cloud Formation模板中的字符串,因此{"Ref": "region"}未展开,因此文字{"Ref": "region"}将传递给--region参数。< / p>

你可以尝试

{"Fn::Join": [" ", ["aws ec2 create-tags --resources xxxxxx --tags Key=Team,Value=everybody --region", {"Ref": "region"}, "--out text\n"]]} 

文档提供有关Fn::Join函数http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html

的信息

此示例模板还显示UserData,其中包含Ref区域参数

https://s3.amazonaws.com/cloudformation-templates-us-east-1/vpc_single_instance_in_subnet.template