5

我目前在 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

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

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

compute = googleclientapi.discovery.build('compute', 'v1')
compute.instances().insert(...).execute()

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

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

或者

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

4

1 回答 1

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 ==

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

于 2021-03-02T09:46:12.110 回答