Google cloud platform 为什么gcloud API不如gcloud cli成熟?

Google cloud platform 为什么gcloud API不如gcloud cli成熟?,google-cloud-platform,google-compute-engine,gcloud,Google Cloud Platform,Google Compute Engine,Gcloud,列出项目中的实例的步骤 使用CLI,我们可以列出所有实例 gcloud computes instances list --project=<PROJECT-NAME> 我们不能列出所有使用API的实例吗 为什么gcloud API不如gcloud cli成熟 谷歌云API是GCLI CLI的基础。我认为您混淆了易用性和原始界面。API是一个低级接口,您并不真正希望API代表您提供智能。否则,您无法添加新功能或修复问题。这些API应该为一个定义良好的特性(构建块)提供支持。更高级别

列出项目中的实例的步骤

使用CLI,我们可以列出所有实例

gcloud computes instances list --project=<PROJECT-NAME>
我们不能列出所有使用API的实例吗

为什么gcloud API不如gcloud cli成熟

谷歌云API是GCLI CLI的基础。我认为您混淆了易用性和原始界面。API是一个低级接口,您并不真正希望API代表您提供智能。否则,您无法添加新功能或修复问题。这些API应该为一个定义良好的特性(构建块)提供支持。更高级别的软件gcloud结合了这些功能,以向用户演示

当您访问区域时,您正在连接到数据中心。因此,您需要连接到每个数据中心以访问数据中心内的资源。在大多数情况下,谷歌专区的设计都是独立的,这有助于提高容错性、可用性等

使用CLI,我们可以列出所有实例

gcloud computes instances list --project=<PROJECT-NAME>
gcloud计算实例列表-project=project-NAME

此命令在较低级别上连接到每个分区并检索实例列表。如果您使用的是API,则需要自己实现逻辑以连接到每个区域并合并结果

使用API,我们可以列出每个区域的实例

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

gcloud computes instances list --project=<PROJECT-NAME>
我们不能列出所有使用API的实例吗

是的,为要列出实例的每个区域执行API

你可能已经注意到了一件事。对于某些操作来说,gcloud似乎要做很多工作,需要一段时间。例如,列出项目中的所有计算实例。我只有一个区域中的实例,所以我的API调用非常快。相比之下,gcloud必须与所有55个谷歌区域对话,以查看每个区域中有哪些实例。与仅扫描一个区域的命令相比,这使得该命令的速度较慢

总之,gcloud为您提供了易用性,API为您提供了原始功能

为什么gcloud API不如gcloud cli成熟

谷歌云API是GCLI CLI的基础。我认为您混淆了易用性和原始界面。API是一个低级接口,您并不真正希望API代表您提供智能。否则,您无法添加新功能或修复问题。这些API应该为一个定义良好的特性(构建块)提供支持。更高级别的软件gcloud结合了这些功能,以向用户演示

当您访问区域时,您正在连接到数据中心。因此,您需要连接到每个数据中心以访问数据中心内的资源。在大多数情况下,谷歌专区的设计都是独立的,这有助于提高容错性、可用性等

使用CLI,我们可以列出所有实例

gcloud computes instances list --project=<PROJECT-NAME>
gcloud计算实例列表-project=project-NAME

此命令在较低级别上连接到每个分区并检索实例列表。如果您使用的是API,则需要自己实现逻辑以连接到每个区域并合并结果

使用API,我们可以列出每个区域的实例

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

gcloud computes instances list --project=<PROJECT-NAME>
我们不能列出所有使用API的实例吗

是的,为要列出实例的每个区域执行API

你可能已经注意到了一件事。对于某些操作来说,gcloud似乎要做很多工作,需要一段时间。例如,列出项目中的所有计算实例。我只有一个区域中的实例,所以我的API调用非常快。相比之下,gcloud必须与所有55个谷歌区域对话,以查看每个区域中有哪些实例。与仅扫描一个区域的命令相比,这使得该命令的速度较慢


总而言之,gcloud为您提供了易用性,API为您提供了原始功能。

为了补充这个优秀的答案:以下是gcloud中实例列表的实现:根据此代码在Apache 2.0下分发,因此可以重用它。仅供参考,我们可以使用-Location-匹配所有区域和所有区域来获取kubernetes集群列表@k_vishwanath-使用-作为项目ID的通配符将从大多数谷歌服务的帐户中推断出该项目。它并不意味着所有API的所有区域和区域。库伯内特斯是个例外。帐户是服务帐户的电子邮件地址或唯一ID,用作API调用的凭据。为了补充这一极好的答案:以下是gcloud中实例列表的实现:根据此代码,它是在Apache 2.0下分发的,因此可以重用它。仅供参考,我们可以使用-位置-匹配所有区域和所有区域来获得kubernetes群集列表@k_vishwanath-使用-作为项目ID的通配符将从大多数谷歌服务的帐户中推断出该项目。它并不意味着所有API的所有区域和区域。库伯内特斯是个例外。帐户是服务帐户的电子邮件地址或用作凭据的唯一ID 对于API调用。