我正在开展一个新项目,我计划用 Google Cloud Go API 和客户端库替换一组调用 gcloud
和 gsutil
的一次性 shell 脚本。这背后的主要驱动力是让我可以拥有更易于维护和可测试的代码来管理大型 GCP 自动化项目。
我翻遍了所有 Google 文档,似乎找不到任何涵盖底层 API glcoud
调用或 glcoud
源代码的内容。此外,GCP go API 似乎没有涵盖我正在寻找的内容。我已经能够在 REST API 中找到我需要提供的一些内容,但即便如此,也并不完全清楚哪些 gcloud
命令映射到哪些 REST API 端点。
一个例子是:gcloud addresses describe gce_vm_foo
我能找到的唯一合适的是来自 REST API 的这个端点,通过挖掘大量的文档和反复试验找到:https://godoc.org/google.golang.org/api/compute/v1#InstancesService.Get
我意识到这是一个非常开放的问题,但非常感谢您指出正确的方向。
答案 0 :(得分:4)
如果您想知道 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
然后可能转到 Compute Engine API 页面并搜索(或只是谷歌)从上面的请求 uri 的区别部分,例如“聚合/地址”,这将使您进入 REST Resource: v1.addresses页面的一部分,从这里开始应该相对容易。