Google compute engine 如何使用GCE Node.js客户端从实例模板创建新的GCE VM实例?

Google compute engine 如何使用GCE Node.js客户端从实例模板创建新的GCE VM实例?,google-compute-engine,google-api-nodejs-client,Google Compute Engine,Google Api Nodejs Client,在中,我可以使用从模板创建新VM。使用GCE控制台可以很好地工作,使用URL参数“sourceInstanceTemplate”也可以很好地工作 如何使用(Node.js GCE SDK)从实例模板创建新的GCE-VM?我在节点客户端的文档中找不到解决方案。希望我的备选解决方案能帮助到某人 const exec = require('child-process-promise').exec; var create_vm = (zone, vmname, templatename) =>

在中,我可以使用从模板创建新VM。使用GCE控制台可以很好地工作,使用URL参数“sourceInstanceTemplate”也可以很好地工作


如何使用(Node.js GCE SDK)从实例模板创建新的GCE-VM?

我在节点客户端的文档中找不到解决方案。希望我的备选解决方案能帮助到某人

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

var create_vm = (zone, vmname, templatename) => {
  const cmd =  `gcloud compute instances create ${vmname} ` +
      `--zone=${zone} ` +
      `--source-instance-template=${templatename} `;
  return exec(cmd);
};

create_vm('us-central1-c', 'my-instance', 'whatever')
    .then(console.log)
    .catch(console.error);
您可以在gcloud允许的范围内对此进行自定义。用于创建实例的文档/选项有。

可用于直接访问

以下示例改编自GCE,如果在GCE中执行(特别是在a中),则效果良好


非常好的解决方法,感谢您的启发!不幸的是,我不能使用它。我在一个中,gcloud工具不可用(我测试了它'stderr:'/bin/sh:1:gcloud:notfound\n'}')。
const zone = 'some-zone';
const name = 'a-name';
const sourceInstanceTemplate = `some-template-name`;
createVM(zone, name, sourceInstanceTemplate)
  .then(console.log)
  .catch(console.error);

async function createVM(zone, vmName, templateName) {
  const {auth} = require('google-auth-library');
  const client = await auth.getClient({
    scopes: 'https://www.googleapis.com/auth/cloud-platform'
  });
  const projectId = await auth.getDefaultProjectId();

  const sourceInstanceTemplate = `projects/${projectId}/global/instanceTemplates/${templateName}`;
  const url = `https://www.googleapis.com/compute/v1/projects/${projectId}/zones/${zone}/instances?sourceInstanceTemplate=${sourceInstanceTemplate}`;

  return await client.request({
    url: url,
    method: 'post',
    data: {name: vmName}
  });
}