在 python awscli 中调用运行实例 JSON 时未应用名称实例标签

在 python awscli 中调用运行实例 JSON 时未应用名称实例标签

我在使用 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"
                }
            ]
        }
    ]

相关内容