如何用Java编程设置Google Cloud虚拟机的外部ip



我正在尝试以编程方式启动Google Cloud虚拟机实例。我突然想到,为了能够上网,必须设置一个外部IP地址。

// Access Config
AccessConfig accessConfig = AccessConfig.newBuilder()
.setNatIP("foo")
.setType("ONE_TO_ONE_NAT")
.setName("External NAT")
.setExternalIpv6("bar")
.build();

// Use the network interface provided in the networkName argument.
NetworkInterface networkInterface = NetworkInterface.newBuilder()
.setName(networkName)
.setAccessConfigs(0, accessConfig)
.build();

这就是我的现状。它的灵感来源于这篇文章。我希望它也能在Java中工作,但目前,我陷入了困境。

我得到的只是:

com.google.api.gax.rpc.InvalidArgumentException: Bad Request

不幸的是,谷歌云计算引擎文档并没有真正提供任何关于如何正确设置外部IP的进一步信息。

提前谢谢。

我遇到了答案。在谷歌云计算引擎文档中,它针对Windows实例进行了解释。我花了一段时间才认识到这一点,因为我只关注Linux实例的相关问题。

解决方案:

instanceResource = Instance.newBuilder()
.setName(instanceName)
.setMachineType(machineType)
.addDisks(disk)
// Add external internet to instance
.addNetworkInterfaces(NetworkInterface.newBuilder()
.addAccessConfigs(AccessConfig.newBuilder()
.setType("ONE_TO_ONE_NAT")
.setName("External NAT")
.build())
.setName("global/networks/default")
.build())
.setMetadata(buildMetadata())
.build();

相关内容

  • 没有找到相关文章

最新更新