我在使用 AWS CLI 工具 (awscli python module awscli-1.11.136, awscli-1.11.177) 时遇到了一个奇怪的问题。当使用--cli 输入-json参数、实例未使用我在调用中指定的名称标记进行标记。调用示例:aws ec2 run-instances --cli-input-json file://test-1c.json
。
这测试-1c.json包含以下内容标签规格:
"TagSpecifications": [
{
"ResourceType": "instance",
"Tags": [
{
"Key": "Name",
"Value": "test-1c"
}
],
"ResourceType": "volume",
"Tags": [
{
"Key": "Name",
"Value": "test-1c"
}
]
}
]
卷已正确标记指定姓名标签,但实例不是。
当使用命令行参数调用相同函数时,它可以正常工作:
aws ec2 run-instances \
--image-id ami-123456 \
--instance-type t2.micro \
--placement AvailabilityZone=eu-central-1b \
--security-group-ids sg-123456 \
--subnet-id subnet-123456 \
--private-ip-address 172.31.0.1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=test-1c}]' 'ResourceType=volume,Tags=[{Key=name,Value=test-1c}]'{code}
JSON 的 run-instances awscli python 模块功能中是否存在错误,或者我做错了什么?
提前感谢你的帮助!
答案1
你的 JSON 结构有问题。
您的TagSpecifications
数组中只有一个标签对象。该对象有 2 个ResourceType
和 2 个Tags
属性,其中第二个属性(用于卷)覆盖了第一个属性(用于实例)。这就是失败的原因。
},{
在结构中添加缺失值之前"ResourceType": "volume",
例如
"TagSpecifications": [
{
"ResourceType": "instance",
"Tags": [
{
"Key": "Name",
"Value": "test-1c"
}
],
},
{
"ResourceType": "volume",
"Tags": [
{
"Key": "Name",
"Value": "test-1c"
}
]
}
]