Вызов контейнера в Serverless Containers
Вызвать контейнер можно:
- через HTTPS;
- с помощью триггера;
- с помощью расширения Yandex API Gateway.
При вызове контейнера запускается активная ревизия.
Приложение должно определять номер порта, на котором принимать запросы, из переменной окружения PORT
. Значение переменной задается сервисом автоматически.
HTTPS
При вызове контейнера через HTTPS внутрь развернутого в контейнере приложения пробрасывается HTTP-запрос.
Фильтрация заголовков сообщений
При передаче в контейнер некоторые HTTP-заголовки запроса и ответа изменяются, как описано ниже.
Удаляются из запроса:
- "Expect"
- "Te"
- "Trailer"
- "Upgrade"
- "Proxy-Authenticate"
- "Authorization"
- "Connection"
- "Content-Md5"
- "Max-Forwards"
- "Server"
- "Transfer-Encoding"
- "Www-Authenticate"
- "Cookie"
-
Удаляются из ответа:
- "Host"
- "Authorization"
- "User-Agent"
- "Connection"
- "Max-Forwards"
- "Cookie"
- "X-Request-Id"
- "X-Function-Id"
- "X-Function-Version-Id"
- "X-Content-Type-Options"
-
Вызывают ошибку, если присутствуют в ответе:
- "Proxy-Authenticate"
- "Transfer-Encoding"
- "Via"
-
Перезаписываются с добавлением префикса
X-Yf-Remapped-
:- "Content-Md5"
- "Date"
- "Server"
- "Www-Authenticate"
IP-адрес источника запроса
Если в запросе есть заголовок X-Forwarded-For
Триггер
При вызове контейнера с помощью триггера по адресу, по которому вызывается контейнер, отправляется HTTP-запрос с методом POST. Тело запроса содержит JSON-описание события триггера. IP-адрес источника запроса передается так же, как и при вызове контейнера через HTTPS. Подробнее о триггерах.
Расширение Yandex API Gateway
При вызове контейнера с помощью расширения API Gateway в контейнер передается HTTP-запрос, адресованный к API-шлюзу. В заголовке Host
при этом указывается хост, по которому пользователь обратился к API-шлюзу, а не хост контейнера. IP-адрес источника запроса передается так же, как и при вызове контейнера через HTTPS. Подробнее о расширении в документации Yandex API Gateway.