连接到从 Python 脚本创建的实例

Connecting to an instance created from a Python script

我想自动创建客户端实例和 运行 客户端 Python 脚本。我可以创建一个客户端实例如下:

from googleapiclient import discovery
from oauth2client.client import GoogleCredentials

credentials = GoogleCredentials.get_application_default()
service = discovery.build('compute', 'beta', credentials=credentials)

project = 'my-project'
zone = 'us-central1-a'

instance_body = {
    "name": "my-instance-name",
    "sourceMachineImage": "projects/my-project/global/machineImages/my-image",
}

request = service.instances().insert(project=project, zone=zone, body=instance_body)
response = request.execute()

但是,响应对象似乎不包含新实例的任何身份验证详细信息。因为我有实例的名称,所以我可以从实例列表中获取它的内部 IP 地址,但这不足以连接到它。那么 运行 我的客户端 Python 如何在新创建的实例上编写脚本?

Google 的 Compute Engine API 用于为 Google Cloud Platform 的“控制平面”编程,即它用于创建、更新和删除 Compute Engine 资源Google云平台。

创建计算引擎实例 (VM) 后,您需要使用 operating-specific 工具 远程访问操作系统。例如,如果您正在创建 Linux 个实例,那么您可以使用例如SSH。对于 Windows,我认为该工具称为 RDP

Google 为您提供访问 VM 的凭据(适用于所有操作系统)。使用 Linux VM 时的一种常见方法是使用 SSH 和 SSH 密钥。如果您使用 gcloud compute ssh 连接到实例,gcloud 将为您使用 locally-generated SSH 密钥 (google_compute_engine) 并自动执行该过程。 Windows 有一个不同的过程。

因此您需要:

  1. 运行 上面的代码创建实例返回例如IP|DNS
  2. 创建或重用提供对 VM 的适当访问权限的凭据
  3. 使用(或自动使用 Python library)SSH 或 RDP 连接到 VM
  4. 使用凭据进行身份验证
  5. 运行 你的脚本