提问者:小点点

如何在资源组中列出AWS实例id


我正在尝试获取资源组(hello-rg)中的EC2InstanceId。这是我的代码:

client = boto3.client('resource-groups', region_name='us-east-1', aws_access_key_id="key", aws_secret_access_key="id")

response = client.list_group_resources(
    GroupName='hello-rg',
    Filters=[
        {
            'Name': 'resource-type',
            'Values': [
                'instance',
            ]
        },
    ],
)

print(response) ```


I am getting the error:

文件“rg.py”,第21行,在“instance”中,文件“/root/.local/lib/python3.6/site packages/botocore/client.py”第357行,在_api_call return self中_make_api_call(operation_name,kwargs)文件“/root/.local/lib/python3.6/site packages/botocore/client.py”,第676行,在_make_api_call中引发error_class(parsed_response,operation_name)botocore.errorfactory.BadRequestException:调用ListGroupResources操作时发生错误(BadRequestException):检测到1个验证错误:“filters”处的值“[instance]”。1.member.values未能满足约束:成员必须满足约束:[构件长度必须小于或等于128,构件长度必须大于或等于1,构件必须满足正则表达式模式:AWS::[a-zA-Z0-9]::[a-zA-Z0-9]]```


共1个答案

匿名用户

我知道已经太晚了。但这可能会帮助其他人。

如错误所示,需要是字符串列表,与正则表达式模式AWS::[a-zA-Z0-9]::[a-zA-Z0-9]匹配。要获取实例,Value字符串必须是['AWS::EC2::Instance']

这样的东西应该有效

response = client.list_group_resources(
    GroupName='hello-rg',
    Filters=[
        {
            'Name': 'resource-type',
            'Values': [
                'AWS::EC2::Instance',
            ]
        },
    ],
)