是否可以使用python,bash或php在Internet上重新启动GCP上的VM?
收到一些通知后,我需要重新启动。
谢谢!
答案 0 :(得分:2)
您需要做两件事:
身份验证
最简单的方法是使用gcloud sdk CLI。如果您使用个人计算机,则可以使用个人用户帐户,否则,可以使用service account with a service account key file。
如果使用客户端库,则无需安装gcloud sdk,仅服务帐户密钥文件就足够了。一种好的做法是定义一个环境变量GOOGLE_APPLICATION_CREDENTIALS=/path/to/serviceAccountKeyFile.json
。
这是一个好习惯,因为您不对身份验证代码进行硬编码。库本身在多个位置搜索凭证,您可以在本地环境和GCP上无缝运行相同的代码。没有黑客,没有肮脏的代码,没有不同的入口点。
API调用
如果使用gcloud,则可以使用REST API
重置虚拟机curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -X POST \
https://compute.googleapis.com/compute/v1/projects/<MyProjectId>/zones/<ComputeZone>/instances/<InstanceName>/reset
您还可以使用stop(等待90秒钟),然后重新start您的VM。相同的身份验证,URL不同。 重要的是,至少要等待90秒的最大停止宽限期才能触发启动
遗憾的是,没有Compute Engine客户端库。您只能使用发现API。不如其他现有库那么好。您有一个示例here。要重置,您必须调用此method in Python
compute = googleapiclient.discovery.build('compute', 'v1')
result = compute.instances().reset(project=<MyProjectId>, zone=<ComputeZone>, instance=<InstanceName>).execute()