我正在进行一个新项目,计划用Google Cloud Go API和客户端库替换一组调用gcloud
和gsutil
的一次性shell脚本。这背后的主要驱动因素是,我可以有更容易维护和可测试的代码来管理大规模的GCP自动化项目。
我浏览了所有的Google文档,似乎找不到任何涵盖glcoud
调用的底层API或glcoud
源代码的内容。除此之外,GCP-go API似乎并没有涵盖我想要的内容。我已经能够在RESTAPI中找到一些我需要的东西,但即使这样,也不完全清楚什么gcloud
命令映射到什么RESTneneneba API端点。
例如:gcloud addresses describe gce_vm_foo
我能找到的唯一适合的是REST API的这个端点,它是通过挖掘大量文档和试错发现的:https://godoc.org/google.golang.org/api/compute/v1#InstancesService.Get
我意识到这是一个非常开放的问题,但任何指向正确方向的指示都将不胜感激。
如果你想知道gcloud正在进行什么调用,请添加--log http标志,也许还可以使用grep来缩小搜索范围,例如:
~ gcloud --log-http compute addresses list 2>&1 | grep "GET"
GET /compute/v1/projects/<redacted>/aggregated/addresses?alt=json HTTP/1.1
然后可能转到计算引擎API页面并搜索(或只是谷歌(请求uri与上面的区别部分,如"聚合/地址",这将使您进入页面的RESTResource:v1.addresses部分,从这里开始应该相对容易。