如何使用 gcloud compute node js 客户端分配服务帐户?

How to assign serviceAccount using gcloud compute nodejs client?

我正在尝试使用 gcloud compute nodejs 客户端创建一个新的虚拟机:

const Compute = require('@google-cloud/compute');
const compute = new Compute();

async function createVM() {
  try {
    const zone = await compute.zone('us-central1-a');
    const config = {
      os: 'ubuntu',
      http: true,
      https: true,
      metadata: {
        items: [
          {
            key: 'startup-script-url',
            value: 'gs://<path_to_startup_script>/startup_script.sh'
          },
        ],
      },
    };
    const data = await zone.createVM('vm-9', config);
    const operation = data[1];
    await operation.promise();
    return console.log(' VM Created');
  } catch (err) {
    console.error(err);
    return Promise.reject(err);
  }
}

我有一个 serviceAccount,其中包含此 VM 调用其他资源所需的角色,但我不知道在创建新 VM 时如何将 serviceAccount 分配到哪里。非常感谢任何指点,我找不到任何文档,我被卡住了。

您可以通过在传递给 createVM 的配置选项中添加 serviceAccounts 字段来指定要在新 VM 中使用的服务帐户。这是一个示例片段:

zone.createVM('name', {
  serviceAccounts: [
    {
      email: '...',
      scopes: [
        '...'
      ]
    }
  ]
})

参考: