Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform GCP API是否支持筛选列表对象?_Google Cloud Platform - Fatal编程技术网

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循环-我想过滤列表对象是不可能的