为什么gcloud API不如gcloud cli成熟?

时间:2018-12-22 09:07:34

标签: google-cloud-platform google-compute-engine gcloud

列出项目中的实例

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

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

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

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

我们不能使用API​​列出所有实例吗?

1 个答案:

答案 0 :(得分:7)

  

为什么gcloud API不如gcloud cli成熟?

Google Cloud API是gcloud CLI的基础。我认为您对原始界面的易用性感到困惑。该API是一个低级接口,您真的不希望该API代表您提供“智能”。否则,您将无法添加新功能或解决问题。 API应该为一种定义明确的功能(构件)提供支持。更高级别的软件(gcloud)结合了这些功能,以呈现给用户。

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

  

使用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为您提供了原始功能。