Создать ревизию контейнера
Создавать новую ревизию необходимо в следующих случаях:
- загрузка новой версии Docker-образа в Container Registry;
- изменение настроек ревизии.
Примечание
Для сохранения целостности связей изменение и удаление ревизий контейнера не предусмотрено.
Если реестр или репозиторий с Docker-образом не являются публичными, необходимо указать в настройках ревизии сервисный аккаунт, у которого есть права на скачивание Docker-образа. Например, роль container-registry.images.puller
на каталог или реестр, в которых находится Docker-образ.
Если в настройках ревизии указан сервисный аккаунт, у пользователя или сервисного аккаунта, от имени которого создается ревизия, должна быть роль iam.serviceAccounts.user
. Она подтверждает права на использование сервисного аккаунта.
- В консоли управления
перейдите в каталог, в котором находится контейнер. - Выберите сервис Serverless Containers.
- Выберите контейнер, ревизию которого хотите создать.
- Перейдите на вкладку Редактор.
- Укажите параметры ревизии.
- Нажмите кнопку Создать ревизию.
Чтобы создать ревизию контейнера, выполните команду:
yc serverless container revision deploy \
--container-name <имя_контейнера> \
--image <URL_Docker-образа> \
--cores 1 \
--memory 1GB \
--concurrency 1 \
--execution-timeout 30s \
--service-account-id <идентификатор_сервисного_аккаунта>
Где:
-
--cores
— количество ядер, которые доступны контейнеру. -
--memory
— требуемая память. По умолчанию — 128 МБ. -
--concurrency
— максимальное количество одновременных вызовов одного экземпляра контейнера. По умолчанию — 1, максимальное значение — 16. Если вызовов контейнера больше, чем значениеconcurrency
, Yandex Serverless Containers масштабирует контейнер — запускает его дополнительные экземпляры.Примечание
Количество экземпляров контейнеров и одновременных запросов к ним в каждой зоне доступности не может превышать квоты.
-
--execution-timeout
— таймаут. По умолчанию — 3 секунды. -
--service-account-id
— идентификатор сервисного аккаунта, у которого есть права на скачивание образа.
Результат:
id: bbajn5q2d74c********
container_id: bba3fva6ka5g********
created_at: "2021-07-09T15:04:55.135Z"
image:
image_url: cr.yandex/crpd3cicopk7********/test-container:latest
image_digest: sha256:de8e1dce7ceceeafaae122f7670084a1119c961cd9ea1795eae92bd********
resources:
memory: "1073741824"
cores: "1"
execution_timeout: 3s
service_account_id: ajeqnasj95o7********
status: ACTIVE
Terraform
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
В Terraform ревизия создается при каждом обновлении параметров работы ресурса.
Чтобы создать ревизию:
-
Обновите в конфигурационном файле параметры работы ресурса
yandex_serverless_container
:provider "yandex" { token = "<OAuth-токен>" cloud_id = "<идентификатор_облака>" folder_id = "<идентификатор_каталога>" zone = "ru-central1-a" } resource "yandex_serverless_container" "test-container" { name = "<имя_контейнера>" memory = <объем_памяти> service_account_id = "<идентификатор_сервисного_аккаунта>" image { url = "<URL_Docker-образа>" } }
Более подробную информацию о параметрах ресурса
yandex_serverless_container
в Terraform, см. в документации провайдера . -
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где был создан конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых или обновляемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание или обновление ресурсов: введите в терминал слово
yes
и нажмите Enter.После этого будет создана ревизия. Проверить создание ревизии можно в консоли управления
или с помощью команды CLI:yc serverless container revision list
Чтобы создать ревизию контейнера, воспользуйтесь методом REST API deployRevision для ресурса Container или вызовом gRPC API ContainerService/DeployRevision.