首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Node.js - GCP云函数- VM磁盘快照跨所有区域和VM

Node.js - GCP云函数- VM磁盘快照跨所有区域和VM
EN

Stack Overflow用户
提问于 2018-12-19 23:31:48
回答 1查看 373关注 0票数 0

我想使用GCP无服务器云函数来备份所有区域的VM磁盘,

基本上-我想用时间戳的快照名备份所有的VM磁盘,比如快照-vm_ name -时间戳。

任何超过14天的备份,删除它。所以这是自助式功能。

这些文档糟透了,没有多大帮助。这就是我能走多远

代码语言:javascript
运行
复制
exports.run_process = (req, res) => {
  let message = req.query.message || req.body.message || 'Hello World!';

  console.log(message);

  const Compute = require(`@google-cloud/compute`);
  const compute = new Compute();
  const zone = compute.zone('us-east1-b');

  zone.getDisks(function(err, disks) {
    // `disks` is an array of `Disk` objects.
    disks.map(disk => {
      console.log(disk);
    });
  });

  res.status(200).send(message);
};

任何帮助或建议都是非常感谢的。

参考链接:https://cloud.google.com/nodejs/docs/reference/compute/0.10.x/Zone

EN

Stack Overflow用户

回答已采纳

发布于 2018-12-21 12:05:03

您的代码中有一个错误。在其中使用const Compute = require(@google-cloud/compute);语句。而不是“”,您必须使用“'”。此外,请记住使用您需要添加依赖项的库。您的package.json应该如下所示:

代码语言:javascript
运行
复制
{   
    "name": "sample-http",   
    "version": "0.0.1",   
    "dependencies": {
    "google-cloud": "^0.58.2",
    "@google-cloud/compute": "^0.10.0"   
    } 
 }

接下来的步骤应类似于以下步骤:

  1. 使用快照文档中的代码加载所有可用的快照。使用与获取磁盘相同的逻辑
  2. 获取快照的creationTimeStamp并以天为单位计算差值
  3. 创建一个变量,该变量将以“DD-MM-YYYY”格式var datetime = new Date().toLocaleDateString();获取当前日期,以便将其用作新快照的后缀
  4. 使用此方法new_snapshot_name = new_snapshot_name.replace(/\//g, '-');将所有/替换为-以匹配regex '(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)'
  5. 使用getDisk(...)方法列出所有磁盘并创建它们的快照

我做了一点编码,它对我有用。这个函数完成了你在问题中描述的所有事情。你可以找到我的GitHub中的代码示例

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53860598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档