【问题标题】:How can I use a Google Cloud Function to start and stop vm instances?如何使用 Google Cloud Function 启动和停止 vm 实例?
【发布时间】:2020-09-25 19:43:25
【问题描述】:

我正在尝试通过云功能启动和停止现有的谷歌云计算虚拟机。

我在documentation 中找到了这个,但我不确定这将如何作为云功能发挥作用。身份验证如何工作?如何安装 Node.js 库?

// BEFORE RUNNING:
// ---------------
// 1. If not already done, enable the Compute Engine API
//    and check the quota for your project at
//    https://console.developers.google.com/apis/api/compute
// 2. This sample uses Application Default Credentials for authentication.
//    If not already done, install the gcloud CLI from
//    https://cloud.google.com/sdk and run
//    `gcloud beta auth application-default login`.
//    For more information, see
//    https://developers.google.com/identity/protocols/application-default-credentials
// 3. Install the Node.js client library by running
//    `npm install googleapis --save`

const {google} = require('googleapis');
var compute = google.compute('v1');

authorize(function(authClient) {
  var request = {
    // Project ID for this request.
    project: 'my-project',  // TODO: Update placeholder value.

    // The name of the zone for this request.
    zone: 'my-zone',  // TODO: Update placeholder value.

    // Name of the instance resource to start.
    instance: 'my-instance',  // TODO: Update placeholder value.

    auth: authClient,
  };

  compute.instances.start(request, function(err, response) {
    if (err) {
      console.error(err);
      return;
    }

    // TODO: Change code below to process the `response` object:
    console.log(JSON.stringify(response, null, 2));
  });
});

function authorize(callback) {
  google.auth.getClient({
    scopes: ['https://www.googleapis.com/auth/cloud-platform']
  }).then(client => {
    callback(client);
  }).catch(err => {
    console.error('authentication failed: ', err);
  });
}

感谢您的帮助!

【问题讨论】:

  • 您好,您想实现什么?早上启动 GCE 虚拟机,晚上停止,即?

标签: node.js google-cloud-functions google-compute-engine


【解决方案1】:

目前 GCP 中有一项新功能。 Cloud Scheduler,允许用户在 GCE 虚拟机中安排启动和停止。

Cloud Scheduler 是一个完全托管的企业级 cron 作业调度程序。


要启动/停止 GCE VM Cloud Scheduler,需要使用 Cloud Function 和 Pub/Sub。

有一个完整的文档 guide 使用提供的 Cloud Functions 使用 Cloud Scheduler 调度计算实例(在那里​​您会找到一个启动实例 .js 函数示例 1 和一个停止实例函数示例 2)。

按照guide,您将能够使用 Google Cloud Function 来启动和停止 GCE 实例。

【讨论】:

    猜你喜欢
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2019-12-30
    • 2019-12-08
    相关资源
    最近更新 更多