Управление ревизиями контейнера
Вы можете создать ревизию, получить информацию о ней или список ревизий контейнера, а также добавить переменные окружения.
Примечание
Для сохранения целостности связей изменение и удаление ревизий контейнера не предусмотрено. При создании новой ревизии контейнера предыдущая ревизия становится устаревшей и недоступной для вызова.
Для управления ревизиями контейнера нужны имя или уникальный идентификатор контейнера, которому эта ревизия принадлежит. Чтобы узнать их, получите список контейнеров.
Создавать новую ревизию необходимо в следующих случаях:
- загрузка новой версии Docker-образа в Container Registry;
- изменение настроек ревизии.
Создать ревизию
Для создания ревизии необходимо сделать реестр или репозиторий, в которых находится Docker-образ, публичными или указать в настройках ревизии сервисный аккаунт, у которого есть права на скачивание Docker-образа. Например, роль container-registry.images.puller
на каталог или реестр, в которых находится Docker-образ.
- В консоли управления перейдите в каталог, в котором находится контейнер.
- Откройте сервис 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
, 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 позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте 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
Получить список ревизий
- В консоли управления перейдите в каталог, в котором находится контейнер.
- Откройте сервис Serverless Containers.
- Выберите контейнер, для которого хотите получить список ревизий.
- В разделе Ревизии будет показан список ревизий контейнера и подробная информация о них.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список ревизий контейнера, выполните команду:
yc serverless container revision list --container-name <имя_контейнера>
Результат:
+----------------------+----------------------+--------------------------------------------+---------------------+
| ID | CONTAINER ID | IMAGE | CREATED AT |
+----------------------+----------------------+--------------------------------------------+---------------------+
| bbaq84v92qqc******** | bbab5i36nvda******** | cr.yandex/crpp35hht729********/ubuntu:test | 2021-09-09 11:22:28 |
| bba5eosk5sod******** | bbab5i36nvda******** | cr.yandex/crpp35hht729********/ubuntu:test | 2021-09-09 10:13:04 |
+----------------------+----------------------+--------------------------------------------+---------------------+
Получить информацию о ревизии
- В консоли управления перейдите в каталог, в котором находится контейнер.
- Откройте сервис Serverless Containers.
- Выберите контейнер, информацию о ревизии которого хотите получить.
- В разделе Ревизии будет показан список ревизий контейнера и подробная информация о них.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить подробную информацию о ревизии контейнера, выполните команду:
yc serverless container revision get <идентификатор_ревизии>
Результат:
id: bbaq84v92qqc********
container_id: bbab5i36nvda********
created_at: "2021-09-09T11:22:28.128Z"
image:
image_url: cr.yandex/crpp35hht729********/ubuntu:test
image_digest: sha256:9f05670784f562f278177e43a9ae0179f29b3cb93b2ef165b935f1**********
resources:
memory: "1207959552"
cores: "1"
core_fraction: "100"
execution_timeout: 0s
concurrency: "1"
service_account_id: aje07l4q4vmo********
status: ACTIVE
Добавить переменную окружения
При добавлении переменных окружения создается новая ревизия контейнера. В существующую ревизию переменные окружения добавить нельзя.
- В консоли управления перейдите в каталог, в котором находится контейнер.
- Откройте сервис Serverless Containers.
- Выберите контейнер, для ревизии которого хотите добавить переменную окружения.
- Перейдите на вкладку Редактор.
- В открывшемся окне, в блоке Параметры образа, укажите переменную окружения и нажмите Добавить. Можно добавить несколько переменных окружения.
- Нажмите кнопку Создать ревизию. Будет создана новая ревизия контейнера с указанными переменными окружения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы добавить переменные окружения, выполните команду:
Важно
Если в прошлой ревизии уже были переменные окружения, они перезапишутся.
yc serverless container revision deploy \
--container-name <имя_контейнера> \
--image <URL_Docker-образа> \
--cores 1 \
--memory 1GB \
--service-account-id <идентификатор_сервисного_аккаунта> \
--environment <переменные_окружения>
Где:
--cores
— количество ядер, которые доступны контейнеру.--memory
— требуемая память. По умолчанию — 128 МБ.--environment
— переменные окружения в форматеkey=value
. Можно указать несколько пар через запятую.
Terraform позволяет быстро создать облачную инфраструктуру в Yandex Cloud и управлять ею с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией Mozilla Public License.
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform или в зеркале.
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
Подробнее о Terraform читайте в документации.
Чтобы добавить переменные окружения:
-
Откройте файл конфигурации Terraform и для ресурса
yandex_serverless_container
в блокimage
добавьте списокenvironment
с переменными окружения:... resource "yandex_serverless_container" "test-container" { name = "my-container" memory = 256 service_account_id = "ajec........34ova" image { url = "cr.yandex/yc/test-image:v1" environment = { <ключ> = "<значение>" } } } ...
Где:
--environment
— переменные окружения в форматеkey="value"
. Можно указать несколько пар.
Более подробную информацию о параметрах ресурса
yandex_serverless_container
в Terraform, см. в документации провайдера. -
Проверьте конфигурацию командой:
terraform validate
Если конфигурация является корректной, появится сообщение:
Success! The configuration is valid.
-
Выполните команду:
terraform plan
В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply
-
Подтвердите изменения: введите в терминал слово
yes
и нажмите Enter.
Проверить создание переменных окружения можно в консоли управления или с помощью команды CLI:
yc serverless container revision get <идентификатор_ревизии>