簡體   English   中英

使用Node.js客戶端庫為Google Compute Engine API附加現有磁盤,以創建新的VM

[英]Create a new VM by attaching an existing disk using Node.js client library for Google Compute Engine APIs

我正在使用Google Compute Engine API的Node.js客戶端庫,通過將現有磁盤附加到該虛擬機來創建新的VM。 但是我得到Invalid value for field 'resource.disks[0].source': ''. Source url of disk is missing.Invalid value for field 'resource.disks[0].source': ''. Source url of disk is missing. Invalid value for field 'resource.disks[0].source': ''. Source url of disk is missing. 在以下代碼下運行時出錯。 有人可以幫忙嗎? 提前致謝!

const createVM = () => {

    const Compute = require('@google-cloud/compute');
    const compute = new Compute();
    const zone = compute.zone('us-central1-f');
    let disk;
    const diskName = 'debian-http-disk';
    const vmName = 'debian-http'
    let vm;

    disk = zone.disk(diskName);

    zone
    .createVM(vmName, {
        disks: [disk], 
        http: true, 
        machineType: 'f1-micro'
    })
    .then((data) => {
        vm = data[0];
        const operation = data[1];
        return operation.promise();
    })
    .then(() => {
        console.log('vm created successfully');        
    })
    .catch((e) => {
        console.error(e);
    });    

};

我知道您請求了nodejs庫解決方案,但這將同時起作用。

const exec = require('child-process-promise').exec;

var create_vm = (zone, vmname, diskname) => {
  const cmd =  `gcloud compute instances create ${vmname} ` +
      `--zone=${zone} ` +
      `--disk=name=${diskname}`
  return exec(cmd);
};

create_vm('us-central1-c', 'my-instance', 'some-disk-in-us-central1-c')
    .then(console.log)
    .catch(console.error);

當然,您也可以通過這種方式創建啟動盤並根據需要添加任意數量的選項。 有關創建實例的選項,請參見此處

負責管理GCE API的Node.js客戶端庫的有用人員認識到https://cloud.google.com/nodejs/docs/reference/compute/0.10.x/Zone#createVM上的文檔不正確。 我通過將原始JSON傳遞到zone.createVM方法來完成這項工作,如下所示:

zone.createVM('debian-http', {
    disks: [{
        boot: true,
        source: 'https://www.googleapis.com/compute/v1/projects/[project-id]/zones/us-central1-f/disks/debian-http'
    }], 
    http: true, 
    machineType: 'f1-micro'
})

可以在https://cloud.google.com/compute/docs/reference/rest/v1/instances/insert中找到disks屬性的更多配置選項。 有關該錯誤的更多信息,請參見https://github.com/googleapis/nodejs-compute/issues/107 希望這對別人有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM