Указать облачную сеть, в которой будет находиться API-шлюз
Вы можете указать облачную сеть, в которой будет находиться API-шлюз.
Облачная сеть должна соответствовать следующим условиям:
- Имеет подсети во всех зонах доступности.
- Есть хотя бы один ресурс, IP-адрес которого находится в указанной облачной сети.
Примечание
Если сеть не соответствует условиям выше, сервис не гарантирует ее работу.
- В консоли управления
перейдите в каталог, в котором находится API-шлюз. - Перейдите
в сервис API Gateway. - Выберите API-шлюз.
- Нажмите кнопку
Редактировать. - В поле Сеть укажите облачную сеть, в которой будет находиться API-шлюз.
- Нажмите кнопку Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для изменения API-шлюза:
yc serverless api-gateway update --help -
Получите список API-шлюзов в каталоге по умолчанию:
yc serverless api-gateway list -
Укажите облачную сеть для нужного API-шлюза:
yc serverless api-gateway update \ --id <идентификатор_API-шлюза> \ --network-name <имя_облачной_сети>Где:
--id— идентификатор API-шлюза.--network-name— имя облачной сети. Вместо имени можно указать идентификатор сети в параметре--network-id.
Чтобы ограничить набор подсетей, в которых будет размещен API-шлюз, вместо сети укажите подсети в параметрах
--subnet-idили--subnet-name.
Terraform
Terraform распространяется под лицензией Business Source License
Подробная информация о ресурсах провайдера в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, аутентифицируйтесь соответствующим способом.
-
Откройте файл конфигурации Terraform и добавьте блок
connectivityв описание ресурсаyandex_api_gateway:resource "yandex_api_gateway" "test-api-gateway" { name = "<имя_API-шлюза>" ... connectivity { network_id = "<идентификатор_облачной_сети>" } }Где
network_id— идентификатор облачной сети, в которой будет находиться API-шлюз.Более подробную информацию о параметрах ресурса
yandex_api_gatewayчитайте в документации провайдера. -
Примените изменения:
-
В терминале перейдите в директорию с конфигурационным файлом.
-
Проверьте корректность конфигурации с помощью команды:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминале слово
yesи нажмите Enter.
Проверить результат можно в консоли управления
или с помощью команды CLI:yc serverless api-gateway get <идентификатор_API-шлюза> -
Чтобы указать облачную сеть, в которой будет находиться API-шлюз, воспользуйтесь методом REST API update для ресурса ApiGateway или вызовом gRPC API ApiGatewayService/Update.
В параметре updateMask укажите connectivity, а в параметре connectivity.networkId — идентификатор облачной сети.