Node.js -GCP-云功能 - 所有区域和VM的VM磁盘快照



我想使用gcp serverless -cloud函数来备份所有区域的VM磁盘,

基本上 - 我想备份所有使用时间stamp的快照名称,例如快照-vm_name-timestamp

任何超过14天以上的备份,将其删除。这样就是自我服务功能。

文档很烂,没有太大帮助。这就是我能得到多远

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

您的代码中存在错误。您使用const Compute = require(@google-cloud/compute);语句的位置。而不是" " "您必须使用" '"。另外,请记住使用库您需要添加依赖项。您的package.json应该看起来像这样:

{   
    "name": "sample-http",   
    "version": "0.0.1",   
    "dependencies": {
    "google-cloud": "^0.58.2",
    "@google-cloud/compute": "^0.10.0"   
    } 
 }

继续向前,下一步应与以下几个相似:

  1. 使用快照文档中的代码加载所有可用的快照。使用与获取磁盘

  2. 的逻辑相同的逻辑
  3. 获取快照的creationTimeStamp并计算几天的差异

  4. 创建一个变量,该变量将在>" dd-mm-yyyy"中获得当前日期格式 var datetime = new Date().toLocaleDateString();将其用作新快照的后缀

  5. 使用此方法new_snapshot_name = new_snapshot_name.replace(///g, '-');-替换所有/,以匹配Regex '(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)'

  6. 使用getDisk(...)方法列出所有磁盘并创建它们的快照

我做了一些编码,对我有用。该功能可以完成您在问题中描述的所有内容。您可以在GitHub中找到我的代码示例

相关内容

最新更新