`gcloud compute instances create` 有什么作用? - POST https://compute.googleapis.com…

What does `gcloud compute instances create` do? - POST https://compute.googleapis.com…

使用 gcloud CLI 可以很容易地完成一些事情,例如:

$ export network='default' instance='example-instance' firewall='ssh-http-icmp-fw'
$ gcloud compute networks       create "$network"
$ gcloud compute firewall-rules create "$firewall" --network "$network" \
                                                   --allow 'tcp:22,tcp:80,icmp'
$ gcloud compute instances      create "$instance" --network "$network" \
                                                   --tags 'http-server' \
                                                   --metadata \
  startup-script='#! /bin/bash
  # Installs apache and a custom homepage
  apt update
  apt -y install apache2
  cat <<EOF > /var/www/html/index.html
  <html><body><h1>Hello World</h1>
  <p>This page was created from a start up script.</p>
  </body></html>'
$ # sleep 15s
$ curl $(gcloud compute instances list --filter='name=('"$instance"')' \
                                       --format='value(EXTERNAL_IP)')

(命令详尽,拆解)

$ gcloud compute networks       delete -q "$network"
$ gcloud compute firewall-rules delete -q "$firewall"
$ gcloud compute instances      delete -q "$instance"

…但不清楚来自 REST API 端的等效命令是什么。特别是考虑到大量的选项,例如 https://cloud.google.com/compute/docs/reference/rest/v1/instances/insert

因此,当我为 Google 云计算编写自定义 REST API 客户端时,我想 窃取 gcloud 在内部所做的任何事情引擎。


运行 rg 我发现了一堆这样的行: https://github.com/googleapis/google-auth-library-python/blob/b1a12d2/google/auth/transport/requests.py#L182

特别是 lib/third_party 中的这 5 个:

google/auth/transport/{_aiohttp_requests.py,requests.py,_http_client.py,urllib3.py}
google_auth_httplib2/__init__.py

我在每一个下面添加了 _LOGGER.debug("With body: %s", body)。但是似乎有一些 fancy batching 正在发生,因为我几乎从来没有得到 With body

现在正在使用 Wireshark 看看我能找到什么,但我相信这是一个很难掉下去的兔子洞。 https://console.cloud.google.com/home/activity.

同上

如何找出 gcloud 正在设置的主体?

添加命令行选项 --log-http 以查看 REST API 参数。

没有简单的答案,因为 CLI 随着时间的推移而变化。添加、删除等新功能