我设法创建了一个实例并将ssh加入其中。但是,我对Google Compute Engine有几个问题。
此致 阿西
答案 0 :(得分:10)
正确,实例会在运行时收取费用。 (至分钟,至少10分钟)。实例从它们通过API启动时开始运行,直到它们通过API停止。是否有任何用户通过SSH登录并不重要。对于大多数自动用例,用户从不登录 - 通过start up scripts安装和启动程序。
您可以通过Cloud Console查看正在运行的实例,以确认当前是否正在运行。
如果要从实例内部停止实例,最简单的方法是使用compute-rw Service Account Scope启动实例并使用gcutil。
例如,要使用compute-rw范围从命令行启动实例:
$ gcutil --project=<project-id> addinstance <instance name> --service_account_scopes=compute-rw
(这是通过云控制台手动创建实例时的默认设置)
稍后,在批处理作业完成后,您可以从里面实例中删除实例:
$ gcutil deleteinstance -f <instance name>
答案 1 :(得分:4)
您可以在批处理脚本的末尾放置halt命令(假设您在持久磁盘上输出结果)。 暂停后,实例将处于TERMINATED状态,您将不会被收费。 见https://developers.google.com/compute/docs/pricing 向下滚动到“实例正常运行时间”
答案 2 :(得分:0)
您可以在模型训练后自动关闭实例。模型训练完成后,只需再运行几行代码即可。
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
service = discovery.build('compute', 'v1', credentials=credentials)
# Project ID for this request.
project = 'xyz' # Project ID
# The name of the zone for this request.
zone = 'xyz' # Zone information
# Name of the instance resource to stop.
instance = 'xyz' # instance id
request = service.instances().stop(project=project, zone=zone, instance=instance)
response = request.execute()
将此添加到模型训练脚本中。训练完成后,GCP实例将自动关闭。 官方网站上的更多信息: https://cloud.google.com/compute/docs/reference/rest/v1/instances/stop
答案 3 :(得分:0)
如果你想使用python脚本停止实例,你可以这样:
from google.cloud.compute_v1.services.instances import InstancesClient
from google.oauth2 import service_account
instance_client = InstancesClient().from_service_account_file(<location-path>)
zone = <zone>
project = <project>
instance = <instance_id>
instance_client.stop(project=project, instance=instance, zone=zone)
在上面的脚本中,我假设您使用 service-account 进行身份验证。有关使用的库的文档,您可以访问这里: https://googleapis.dev/python/compute/latest/compute_v1/instances.html