Сетевое взаимодействие в Cloud Functions
По умолчанию функция запускается в изолированной IPv4-сети с включенным NAT-шлюзом. Поэтому из функции доступны только публичные IPv4-адреса.
Пользовательская сеть
Если необходимо, в настройках функции можно указать облачную сеть. Тогда функция будет иметь доступ не только в интернет, но и к пользовательским ресурсам, которые находятся в указанной сети, например базам данным, виртуальным машинам и т.п.
Облачная сеть должна соответствовать следующим условиям:
- Имеет подсети во всех зонах доступности.
- Есть хотя бы один ресурс, IP-адрес которого находится в указанной облачной сети.
Если пользователь укажет сеть в настройках функции, в каждой зоне доступности создастся служебная подсеть с адресами из диапазона 198.19.0.0/16. Во время выполнения функция получит IP-адрес из соответствующей подсети и доступ ко всем ресурсам сети.
Примечание
Для функций, контейнеров и API-шлюзов, которые находятся в одном облаке, можно указать только одну сеть.
Сетевое взаимодействие между двумя функциями и функциями и пользовательскими ресурсами ограничено:
- поддерживаются исходящие соединения по протоколам TCP, UDP и ICMP, например функция может получить доступ к виртуальной машине Compute Cloud или базе данных Managed Service for YDB в сети пользователя.
- входящие соединения не поддерживаются, например нельзя обратиться к внутренним компонентам функции по сети, даже если известен IP-адрес ее экземпляра.
Новый экземпляр функции, в настройках которой указана сеть, может запускаться дольше обычного. Все функции, независимо от их настроек, вызываются только через публичный API. Подробнее о вызове функции.
Чтобы удалить сеть, которая указана в функции, нужно удалить все функции, контейнеры и API-шлюзы, в которых она указана, и подождать от пятнадцати минут до суток.