# #node.js #google-cloud-platform #google-compute-engine
Вопрос:
Я борюсь с созданием новой виртуальной машины с помощью API node google compute engine. Облачная консоль выдает мне код REST, когда внешний IP-адрес не выбран:
"networkInterfaces": [
{
"subnetwork": "projects/optum-80593/regions/us-central1/subnetworks/subnet-us-central1"
}
]
Но когда я использую это в своей конфигурации для API узла, внешний IP-адрес по-прежнему установлен для этой виртуальной машины:
const Compute = require('@google-cloud/compute');
const compute = new Compute();
const zone = compute.zone('us-central1-a');
const config = {
machineType: machinetype,
maintenancePolicy: 'MIGRATE',
http: true,
disks: [
...
],
canIpForward: false,
networkInterfaces: [
{
subnetwork: "projects/optum-80593/regions/us-central1/subnetworks/subnet-us-central1"
}
],
...
}
await zone.createVM(vmName, config).then(async (data) => {
Комментарии:
1.В настоящее время нет способа установить для внешнего IP-адреса виртуальной машины значение » нет » при ее создании с помощью узла js. Вместо этого вы можете удалить внешний IP-адрес с помощью
deleteAccessConfig
вызова API из кода NodeJS после установки компьютера.2. После установки виртуальной машины вы можете выполнить вызов API, используя предпочитаемую библиотеку NodeJS. Установите для параметра «accessConfig» значение «external-nat», а для параметра «NetworkInterface» значение «nic0». Другие аргументы соответствуют данным виртуальной машины, с которой вы пытаетесь удалить внешний IP-адрес.
3. На самом деле это возможно, вам просто нужно опустить
accessConfigs
, и у вас будет виртуальная машина без внешнего IP-адреса. Я протестировал с моей стороны так, как это делаете вы, и у меня есть виртуальная машина без внешнего IP-адреса. Может быть, есть что-то еще…
Ответ №1:
Это работает, когда я копирую весь код REST в свой API узла.