使用 Python 启动 Google Compute 实例

fif*_*ace 1 python google-compute-engine google-api-python-client

我正在尝试使用 Google API Python 客户端库启动 Google Compute 实例。这是为了让一个便宜的实例(在单个内核上运行)可以定期启动和停止一个更昂贵的实例(具有多个内核),以降低成本。

我已经成功安装了不同的组件并运行了 Google 的示例脚本create_instance.py(它创建了一个实例,运行了一个启动脚本,然后删除了该实例)。检查 Compute Engine API 的 PyDoc 参考,并交叉参考 create_instance.py 示例中其他实例()函数的工作方式,我希望启动实例命令是:

python compute.instances().start(project=*, zone=*, instance=*).execute()
Run Code Online (Sandbox Code Playgroud)

上面的命令给了我错误“在 '('. at line:1 char:34”之后需要一个表达式 - 这是第一个括号。

一种。我做错了什么?

湾 将 Google API 与 Python 结合使用是从其他实例以编程方式启动实例的好方法吗?

小智 5

下面是启动计算引擎实例所需的代码

from googleapiclient import discovery

service = discovery.build('compute', 'v1')
print('VM Instance starting')

# Project ID for this request.
project = 'project_name' 

# The name of the zone for this request.
zone = 'zone_value'  

# Name of the instance resource to start.
instance = 'instance_name'

request = service.instances().start(project=project, zone=zone, instance=instance)
response = request.execute()

print('VM Instance started')
Run Code Online (Sandbox Code Playgroud)

这是我用于从云函数启动我的 VM 实例的代码。

这里需要注意的重要一点是,如果实例处于停止状态,这只能启动实例,这完全符合我的要求。