Я пытаюсь динамически создавать экземпляры Compute в Google Cloud через PHP с помощью API.
Используя пример csmartinez Cloud API , мне удалось создать свой экземпляр и увидеть, что он работает в консоли Google.
Мне нужно назначить внешний IP-адрес этому новомусозданный экземпляр.Основываясь на API и библиотеке Google PHP, я добавил:
$ipName = "foo";
$addr = new Google_Service_Compute_Address();
$addr->setName($ipName);
$response = $service->addresses->insert($project, $ipZone, $addr);
Поскольку этот вызов сначала имеет статус «ожидающий», я добавил sleep (5), чтобы затем получить вновь созданную статическуюIP:
$response = $service->addresses->get($project, $ipZone, $ipName);
$ip = $response->address;
, который работает хорошо и дает мне правильный IP-адрес.Затем я продолжаю и пытаюсь создать свой экземпляр при назначении нового IP-адреса:
$networkConfig = new Google_Service_Compute_AccessConfig();
$networkConfig->setNatIP($ip);
$networkConfig->setType("ONE_TO_ONE_NAT");
$networkConfig->setName("External NAT");
$googleNetworkInterfaceObj->setAccessConfigs($networkConfig);
Статический IP-адрес создан, экземпляр создан, но IP-адрес не назначен экземпляру.Чтобы устранить мои сомнения в статусе ожидания, я также попытался назначить уже созданный статический IP-адрес своему экземпляру, используя, таким образом:
$networkConfig->setNatIP("xxx.xxx.xxx.xxx");
Безуспешно ... Чего мне здесь не хватает?