【发布时间】:2020-03-07 01:20:25
【问题描述】:
我在 python 中使用googleapiclient 来启动 VM 实例。作为其中的一部分,我使用该工具运行启动脚本来安装 docker 和其他 python 包。
现在,我想做的一件事是最好在实例创建阶段通过 python 代码将文件复制到此实例。
实现这一目标的方法是什么?理想情况下,能够检测到实例已启动,然后能够复制这些文件。
【问题讨论】:
-
Python 代码在哪里运行(在 VM 上或在创建 VM 实例的管理程序上)?作为提示,您可以将文件存储在 Cloud Storage 上并使用 CLI
gcloud将文件从 Cloud Storage 复制到实例。 CLI 作为启动脚本的一部分执行。但是,我不会这样做。我会启动一个虚拟机,安装我需要的东西,然后创建一个 GCE 映像,然后我用它来启动已安装所有必需程序和文件的新实例。 -
python 代码正在创建 VM 实例的管理程序上运行。问题是被转移到 VM 实例的东西有点敏感,我不想将它存储在一些持久性图像中。它们本质上是 SSH 密钥,无论如何都具有非常有限的时间有效性,因此我必须在每次创建 VM 时生成它们,并且我只能(出于各种原因)从管理程序中生成它们。
-
1) 编辑您的问题并提供更多详细信息。正如所写,您的问题对于 Stackoverflow 来说太宽泛了。 2)关于 SSH 密钥,它们不会过期,因此请提供有关您的意思的更多详细信息。 3) GCE 映像中的数据与云存储或您自己的计算机一样安全(或不安全)。
-
4) 如果您的代码在实例之外运行,那么您将需要使用 SSH 远程控制 VM,使用 SCP/SSH 传输可以在 Python 中完成的文件,编写您自己的在实例上运行的代理或编写使用 CLI 下载文件的脚本。每种方法都有其自身的局限性和需要管理的可靠性问题。
标签: google-cloud-platform google-compute-engine google-api-python-client