连接到 Google Compute Engine 实例以运行 Python 脚本

Jua*_*n C 1 python google-compute-engine gcloud

我对云计算很陌生,而且我不是来自软件工程背景,所以如果我说的有些话不正确,请见谅。

我习惯于在像 Spyder 这样的 IDE 上工作,我想保持这种方式。最近,在我的组织中,我们正在试验 Google Cloud,我尝试做的是在云上运行一个简单的脚本,而不是使用 Google Cloud 的 API 在我的计算机上运行。

假设我想通过 Spyder 在云上运行它:

x=3
y=2
print(f'your result is {x+y}') 
Run Code Online (Sandbox Code Playgroud)

我猜我可以做这样的事情:

from googleapiclient import discovery

compute = discovery.build('compute', 'v1')
request = compute.instances().start(project=project, zone=zone, instance=instance)
request.execute()
#Do something to connect to instance


x=3
y=2
print(f'your result is {x+y}') 
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?或者告诉 python 运行script.py?谢谢,如果我不清楚,请告诉我。

Daz*_*kin 7

你不必道歉;每个人在某个时候都是云计算的新手。

我鼓励阅读有关云计算的内容,以更好地了解它是什么以及它与您当前的体验相比如何。

您包含的代码将无法按原样运行。

与 Compute Engine 有两种交互模式,Compute Engine 是Google Cloud Platform 中的几种计算服务之一。

从根本上说,与 Compute Engine 实例的交互类似于您与笔记本电脑的交互方式。要运行 python 程序,你要么启动 Python 的 REPL,要么创建一个脚本,然后通过 python 解释器运行脚本。这也是它在 Compute Engine 实例上的工作方式。

你可以在 Linux 上用一行来完成:

python -c "x=2; y=3; print(x+y)"
Run Code Online (Sandbox Code Playgroud)

但是,首先,您必须告诉 Compute Engine 为您创建一个实例。您可以使用 Google Cloud Console ( http://console.cloud.google.com )、Google Cloud SDK 又名“gcloud”或使用例如 Google 的计算引擎 Python 库(这就是您的代码所做的)来执行此操作。无论哪个这些方法的使用,所有这些最终使对抗谷歌云REST调用例如,提供一个实例:

from googleapiclient import discovery

compute = discovery.build('compute', 'v1')
request = compute.instances().start(project=PROJECT, zone=ZONE, instance=INSTANCE)
request.execute()
#Do something to connect to instance
Run Code Online (Sandbox Code Playgroud)

您的示例结束connect to instance,这标志着配置实例和与其交互之间的转换。上面代码的替代方法是使用 Google 的命令行,通常称为“gcloud”,例如:

from googleapiclient import discovery

compute = discovery.build('compute', 'v1')
request = compute.instances().start(project=PROJECT, zone=ZONE, instance=INSTANCE)
request.execute()
#Do something to connect to instance
Run Code Online (Sandbox Code Playgroud)

gcloud提供了一个方便的命令,允许您使用,ssh但它会为您处理身份验证:

gcloud compute instances create ${INSTANCE} \
--project=${PROJECT} \
--zone=${ZONE}
Run Code Online (Sandbox Code Playgroud)

注意此命令 ssh 进入 Compute Engine 实例,然后运行您的 Python 程序。

这不是实现这一目标的最佳方式,但我希望它向您展示了一种实现目标的方式。

随着您了解 Google Cloud Platform,您将了解到还有其他计算服务。这些其他计算服务提供了更高级别的抽象。您可以将代码直接部署到例如 Python 运行时,而不是配置虚拟机。Google App Engine 和 Google Cloud Functions 都提供了一种方法,您可以通过该方法将程序直接部署到计算服务,而无需配置实例。由于这些服务在更高级别运行,因此您也可以在 IDE 中编写、测试甚至部署代码。

Google Cloud Platform 可根据您的要求提供多种计算服务。这些伴随着存储服务机器学习分析物联网开发人员工具等。它可能会让人不知所措,但您应该从基础开始(遵循一些“hello world”教程)并从那里开始学习.

哼!