1

"@google-cloud/compute": "^2.1.0"用来创建一个虚拟机,我设置了'ONE_TO_ONE_NAT',如下所示。

问题是虚拟机不是使用公共 IP 创建的。

如果我在配置中添加 http:true,则会创建公共 IP,但我想避免配置中的 http 标签。

对我来说,它看起来像一个错误,因为它应该根据文档工作。

知道为什么它不起作用吗?(除了一个错误)

   const config = {
      //http: true,
      machineType: machineType,
      disks: [
        {
          boot: true,
          initializeParams: {
            sourceImage: SOURCE_IMAGE_PREFIX + projectId + SOURCE_IMAGE_PATH,
          },
        },
      ],
      networkInterfaces: [
        {
          network: 'global/networks/default',
          accessConfigs: {
            type: 'ONE_TO_ONE_NAT',
            name: 'External NAT',
          },
        },
      ],
      metadata: {
        items: [
          {
            key: 'startup-script',
            value: `#! /bin/bash
                sudo docker run ...
          },
        ],
      }
    };
4

2 回答 2

3

这只是一个错误,花了很多时间才找到!

accessConfigs是一个数组!!添加[],像这样

          accessConfigs: [{
            type: 'ONE_TO_ONE_NAT',
            name: 'External NAT',
          }],
于 2020-11-30T20:36:27.067 回答
0

一个空的 access_config 块将为您的实例分配一个外部临时 IP。

network_interface {
    network = "default"
    access_config {}
}

于 2020-11-30T19:50:23.277 回答