Среда выполнения
Приложение выполняется в виртуальном окружении.
Характеристики среды выполнения:
- операционная система — Ubuntu 22.04 LTS;
- ядро Linux — 5.15;
- архитектура — AMD64.
Поддерживаемые языки и образы
Приложение может быть написано на любом языке программирования и использовать любой образ, который удовлетворяет следующим требованиям:
- Исполняемые файлы скомпилированы под Linux x86_64.
- Доступные форматы образов — Docker Image Manifest V 2, Schema 2
и OCI Image Format .
Ответ контейнера
Процесс, который запускается при вызове контейнера, зависит от режима работы контейнера.
Вызов контейнера завершается в одном из следующих случаев:
- Serverless Containers обработал HTTP-запрос за заданный таймаут и вернул HTTP-ответ в соответствии с режимом работы контейнера. Таймаут включает в себя время запуска экземпляра контейнера.
- Serverless Containers не успел обработать HTTP-запрос за заданный таймаут и вернул ошибку 504.
- Произошла инфраструктурная ошибка или ошибка инициализации, информация о которой будет передана в теле ответа.
Переменные окружения
В таблице приведен список переменных окружения, которые определены в среде выполнения Serverless Containers и доступны приложению. Их нельзя переопределить.
| Ключ | Значение |
|---|---|
PORT |
Сетевой порт, на который среда выполнения передает HTTP-запросы в приложение. |
REQUEST_PATH |
Данные HTTP-запроса к контейнеру, если режим работы контейнера — Выполнение команд. |
Добавить дополнительные переменные окружения можно при создании ревизии контейнера или сборке Docker-образа. Лимит на максимальный объем переменных окружения, включая их имена, — 4 КБ.
Вычисление переменных окружения не осуществляется. Значения переменных окружения являются строковыми константами. Вычислить их можно только в коде приложения.
Получить переменные окружения можно с помощью стандартных средств языка программирования.
Файловая система
Файлы и директории образа контейнера доступны для чтения на файловой системе виртуальной среды. Файловая система доступна на запись. Доступный для записи объем ограничен, подробнее в Квоты и лимиты.
Файловая система хранится в RAM. Данные, записанные в файловую систему, не сохраняются при остановке экземпляра контейнера.
Доверенные корневые сертификаты
В контейнере выполняется пользовательский Docker-образ со своим набором сертификатов. Сервис дополнительно не добавляет корневые сертификаты в контейнер. Если коду нужно доверять сертификатам Национального удостоверяющего центра Минцифры России (Russian Trusted Root CA) или внутреннего удостоверяющего центра Yandex Cloud, необходимо добавить их при сборке Docker-образа.
Пример для Docker-образов на базе Debian или Ubuntu:
RUN apt-get update && apt-get install -y ca-certificates curl \
&& curl -fsSL https://gu-st.ru/content/Other/doc/russiantrustedca.pem \
-o /usr/local/share/ca-certificates/russian-trusted-root-ca.crt \
&& curl -fsSL https://storage.yandexcloud.net/cloud-certs/CA.pem \
-o /usr/local/share/ca-certificates/yandex-internal-ca.crt \
&& update-ca-certificates
Пример для Docker-образов на базе Alpine:
RUN apk add --no-cache ca-certificates curl \
&& curl -fsSL https://gu-st.ru/content/Other/doc/russiantrustedca.pem \
-o /usr/local/share/ca-certificates/russian-trusted-root-ca.crt \
&& curl -fsSL https://storage.yandexcloud.net/cloud-certs/CA.pem \
-o /usr/local/share/ca-certificates/yandex-internal-ca.crt \
&& update-ca-certificates
Если сайт передает неполную цепочку сертификатов и не отдает промежуточный сертификат, необходимо добавить недостающий промежуточный сертификат в Docker-образ так же, как корневой.
Ресурсы экземпляра контейнера
CPU
Ресурс CPU выделяется всегда, когда экземпляр контейнера обрабатывает хотя бы один запрос. В настоящий момент доступно не более 4 vCPU.
RAM
Каждому экземпляру контейнера выделяется ресурс RAM. По умолчанию — 128 МБ.
Например, RAM расходуется при:
- записи в файловую систему;
- запуске процессов в контейнере;
- обработке запросов.
Соотношение RAM и vCPU
Количество доступных ядер зависит от указанного объема памяти.
| RAM | CPU |
|---|---|
| 128 МБ – 4 ГБ (не включительно) | 1 vCPU, гарантированная доля vCPU — до 100 % |
| 4 ГБ – 6 ГБ (не включительно) | 2 vCPU, гарантированная доля vCPU — до 100 % |
| 6 ГБ – 8 ГБ (не включительно) | 3 vCPU, гарантированная доля vCPU — до 100 % |
| 8 ГБ | 4 vCPU, гарантированная доля vCPU — до 100 % |
Сервис метаданных
Внутри виртуальной среды выполнения контейнера доступен сервис метаданных. Из сервиса метаданных можно получить IAM-токен сервисного аккаунта, если сервисный аккаунт был указан при создании ревизии контейнера.