Почему API gcloud не настолько развиты, как gcloud cli? - PullRequest
0 голосов
/ 22 декабря 2018

Чтобы перечислить экземпляры в проекте

с помощью CLI, мы можем перечислить все экземпляры

gcloud computes instances list --project=<PROJECT-NAME>

с помощью API, мы можем перечислить экземпляры по зонам

https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances

Не можем ли мы перечислить все экземпляры с использованием API?

1 Ответ

0 голосов
/ 22 декабря 2018

Почему API gcloud не так развиты, как gcloud cli?

API Google Cloud являются основой для gcloud CLI.Я думаю, что вы путаете простоту использования и простой интерфейс.API - это низкоуровневый интерфейс, и вы не хотите, чтобы API предоставлял «разведку» от вашего имени.В противном случае вы не сможете добавлять новые функции или исправлять проблемы.API-интерфейсы должны обеспечивать поддержку одной четко определенной функции (строительного блока).Программное обеспечение более высокого уровня (gcloud) объединяет эти функции для представления пользователю.

При доступе к зоне вы подключаетесь к центру обработки данных.Поэтому вам необходимо подключиться к каждому центру обработки данных для доступа к ресурсам внутри центра обработки данных.По большей части, Google Zones спроектированы как независимые, что помогает с отказоустойчивостью, доступностью и т. Д.

, используя CLI, мы можем перечислить все экземпляры

список вычислений gcloud --project = PROJECT-NAME

Эта команда на более низком уровне подключается к каждой зоне и получает список экземпляров.Если вы используете API, вам нужно будет самостоятельно реализовать логику, чтобы подключиться к каждой зоне и объединить результаты.

, используя API, мы можем перечислить экземпляры для каждой зоны

https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances

Разве мы не можем перечислить все экземпляры с помощью API?

Да, выполнить API для каждой зоны, для которой вы хотите перечислить экземпляры.

Один элементчто вы могли заметить.Для некоторых операций gcloud, кажется, выполняет много работы и занимает некоторое время.Например, перечисление всех экземпляров вычислений в вашем проекте.У меня есть только экземпляры в одной зоне, поэтому мои вызовы API очень быстрые.Для сравнения gcloud должен поговорить со всеми 55 зонами Google, чтобы увидеть, какие экземпляры есть в каждой зоне.Это делает команду медленнее по сравнению с командой, которая сканирует только одну зону.

В итоге gcloud упрощает использование, API дает необработанную мощность.

...