我想自动创建客户端实例并在其上运行客户端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,即用于在Google Cloud Platform上创建、更新和删除Compute Engine资源。
创建了计算引擎实例(VM)之后,需要使用特定于操作的工具远程访问操作系统。例如,如果你正在创建Linux实例,那么你可以使用SSH与虚拟机交互。. 对于Windows,我想这个工具叫做RDP.
Google为您提供访问VM的凭据(适用于所有类型的操作系统)。使用Linux虚拟机时,常见的方法是使用SSH和SSH密钥。如果您使用gcloud compute ssh
连接到实例,gcloud
将为您(google_compute_engine
)使用本地生成的SSH密钥并自动执行该过程。对于Windows,有一个不同的进程。
所以你需要:
- 运行以上代码创建实例返回例如:IP|DNS
- 创建或重用提供对VM的适当访问的凭据
- 使用(或自动使用Python库)SSH或RDP连接到VM
- 使用凭证进行身份验证