Google cloud platform GCP API是否支持筛选列表对象?
我正在尝试筛选特定网络中的实例,并尝试使用此筛选器:Google cloud platform GCP API是否支持筛选列表对象?,google-cloud-platform,Google Cloud Platform,我正在尝试筛选特定网络中的实例,并尝试使用此筛选器: networkInterfaces.network = 'NET_NAME' 我得到了无效的表达 我甚至尝试了以下方法——所有这些方法都得到了相同的结果: networkInterfaces[0].network = 'NET_NAME' networkInterfaces[].network = 'NET_NAME' []networkInterfaces.network = 'NET_NAME' 找不到一个地方说明这是否是一个受支持的
networkInterfaces.network = 'NET_NAME'
我得到了无效的表达
我甚至尝试了以下方法——所有这些方法都得到了相同的结果:
networkInterfaces[0].network = 'NET_NAME'
networkInterfaces[].network = 'NET_NAME'
[]networkInterfaces.network = 'NET_NAME'
找不到一个地方说明这是否是一个受支持的筛选器
我尝试在他们的API资源管理器中运行这些过滤器:
?
也可以通过他们的官方Python客户端解析响应并过滤所需的实例,如下所示
import googleapiclient.discovery
project = "my-gcp-project"
zone = "us-central1-b"
network_name = "mynetwork"
compute = googleapiclient.discovery.build('compute', 'v1')
result = compute.instances().list(project=project, zone=zone).execute()
filtered_instances = []
for item in result['items']:
if "networkInterfaces" in item.keys():
for network_interface in item['networkInterfaces']:
if "network" in network_interface.keys():
if network_name in network_interface['network']:
filtered_instances.append(item['name'])
print(str(filtered_instances))
希望这有帮助。基本上,此API不支持筛选“网络标签”以列出实例。要查看支持的筛选器/字段列表,您可以单击GCP控制台主页上显示VM实例的“筛选器VM实例”。不幸的是,列表中没有要筛选的“网络标签”。或者,您可以在云shell中执行以下命令,列出所有实例及其网络标记: $gcloud计算实例列表--filter=tags:TAG\u NAME
您可以在这里看到这个示例。谢谢,伙计,但我想避免在代码中运行另一个for循环-我想过滤列表对象是不可能的