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