我正在尝试获取资源组(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]]```
我知道已经太晚了。但这可能会帮助其他人。
如错误所示,值
需要是字符串列表,与正则表达式模式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',
]
},
],
)