为什么gcloud API不像gcloud cli那样成熟?

k_v*_*ath 1 google-compute-engine google-cloud-platform gcloud

列出项目中的实例

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

gcloud computes instances list --project=<PROJECT-NAME>
Run Code Online (Sandbox Code Playgroud)

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

https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances
Run Code Online (Sandbox Code Playgroud)

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

Joh*_*ley 7

为什么gcloud API不像gcloud cli那样成熟?

Google Cloud API是gcloudCLI 的基础.我认为你的易用性与原始界面相混淆.API是一个低级别的界面,您并不真的希望API代表您提供"智能".否则,您无法添加新功能或修复问题.API应该为一个明确定义的功能(构建块)提供支持.更高级别的软件(gcloud)将这些功能组合在一起,以便呈现给用户.

访问区域时,您将连接到数据中心.因此,您需要连接到每个数据中心以访问数据中心内的资源.对于大多数部分,Google Zones都是独立设计的,有助于提高容错能力,可用性等.

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

gcloud compute instances list --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为您提供原始功能.