我可以使用 googleapiclient python 客户端复制 `create-with-container` gcloud sdk 命令吗

M. *_*ams 6 google-api-python-client google-cloud-platform gcloud gcloud-compute

我目前在 gcloud 容器存储库上有一个 docker 容器,我想启动它的一个实例以运行计算、保存结果并关闭:

gcloud compute instances create-with-container test-1 \
--machine-type=n1-standard-4 \
--boot-disk-size=20GB \
--container-image=eu.gcr.io/<container-link> \
--container-env=GCLOUD_INPUT_FILENAME=file.txt \
--container-env=GCLOUD_PROJECT=project-name
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够使用 Web 界面(flask)启动这些实例,这意味着我想使用 googleapiclient python)来创建和管理这些实例:

看起来您可以使用发现 api 创建实例创建顺序:

gcloud compute instances create-with-container test-1 \
--machine-type=n1-standard-4 \
--boot-disk-size=20GB \
--container-image=eu.gcr.io/<container-link> \
--container-env=GCLOUD_INPUT_FILENAME=file.txt \
--container-env=GCLOUD_PROJECT=project-name
Run Code Online (Sandbox Code Playgroud)

但看起来不可能模拟create-with-containergcloud sdk 命令,尽管您可以将“machineImage”作为创建请求的一部分传递。

可以创建一个计算实例“with-container”而不使用subprocess调用 gcloud sdk

或者

我可以将create-with-container实例转换为机器映像然后使用吗googleapi client

Ind*_*our 0

仅供参考,我从 log-http 日志记录中发现了什么(我知道这不是正确的答案)

==== request start ====
uri: https://compute.googleapis.com/batch/compute/v1
method: POST
== headers start ==
b'authorization': --- Token Redacted ---
b'content-length': b'479'
b'content-type': b'multipart/mixed; boundary="===============34234234234234=="'
b'user-agent': b'google-cloud-sdk gcloud/329.0.0 command/gcloud.compute.instances.create-with-container invocation-id/0dd6a37ac0624ac4b00e30a44da environment/devshell environment-version/None interactive/False from-script/False python/3.7.3 term/screen (Linux 5.4.89+)'
== headers end ==
Run Code Online (Sandbox Code Playgroud)

“create-with-container”是通过标头传递的,我没有找到相同的正文。