Я пытаюсь отфильтровать список экземпляров по типу машины. Однако это не похоже на работу.
Compute.Instances.List request = computeService.instances().list("project-name","us-central1-a" );
request.setFilter("(machinetype = zones/us-central1-a/machineTypes/n1-standard-1)");
InstanceList instanceList = request.execute();
List<Instance> instances = instanceList.getItems();
Ответ пуст, хотя у меня есть экземпляр, который соответствует фильтру! (когда я удаляю фильтр, он получает экземпляр.)
[chaker@cbenhamed:~]$ gcloud compute instances list
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS
foo-bar-worker-n1-standard-1-65304152130-zfq us-central1-a n1-standard-1 true 10.240.0.2 00.000.00.255 RUNNING
Согласно документации , в этом случае должен работать параметр filter . Потому что сначала machineType находится в корне объекта Instance. И второе - это правильная форма аргумента machineType
Полный или частичный URL-адрес ресурса типа машины, который будет использоваться для этого экземпляра, в формате: zone / zone / machineTypes / machine-type. Это обеспечивается клиентом при создании экземпляра.
Я пытался проверить HTTP-запросы, сделанные gcloud
gcloud compute instances list --filter="machineType:n1-standard-1" --log-http
Но оказалось, что он получает весь список (по всем зонам!) И фильтрует их локально!