如果值包含引号,我似乎无法在资源上创建标签。例如:
aws ec2 create-tags --resource $someResource --tags 'Key=mykey,Value={"json":"value"}'
失败:
Error parsing parameter '--tags': should be: Key value pairs, with multiple values separated by a space.
但是如果我在值中不使用引号来运行它,它就会成功:
aws ec2 create-tags --resource $someResource --tags 'Key=mykey,Value={json:value}'
我尝试了几种不同的引用/转义组合,但似乎无法从 CLI 设置 JSON 值。
为了完整性,我昨天更新了我的工具:
aws --version
aws-cli/1.3.6 Python/2.7.5 Darwin/13.1.0
谢谢!
答案1
遇到了同样的问题,并找到了一种规避这种意外行为的方法,我认为:
aws ec2 create-tags --resource $someResource --tags Key=mykey,Value='"{\"json\":\"value\"}"'
可能有点过时了,但有人可能会觉得它很有用。问题是 awscli 似乎试图将引号内的内容解析为变量,如果它不是默认的字符串,它就会给出错误。因此,在引号内,需要使用另一组引号,以便它默认为字符串。