Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
© 2022 ООО «Яндекс.Облако»
Yandex Serverless Containers
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Получение IAM-токена сервисного аккаунта
    • Управление контейнером
      • Создание контейнера
      • Получение списка контейнеров
      • Управление ревизиями контейнера
      • Управление правами доступа к контейнеру
      • Вызов контейнера
      • Изменение контейнера
      • Мониторинг
      • Просмотр журнала выполнения
      • Удаление контейнера
  • Концепции
    • Обзор
    • Контейнер
    • Вызов контейнера
    • Среда выполнения
    • Логи контейнера
    • Резервное копирование
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Управление контейнером
  3. Управление ревизиями контейнера

Управление ревизиями контейнера

Статья создана
Yandex.Cloud
,
улучшена
Nikita K.
  • Создать ревизию
  • Получить список ревизий
  • Получить информацию о ревизии
  • Добавить переменную окружения

Вы можете создать ревизию, получить информацию о ней или список ревизий контейнера, а также добавить переменные окружения.

Примечание

Для сохранения целостности связей изменение и удаление ревизий контейнера не предусмотрено. При создании новой ревизии контейнера предыдущая ревизия становится устаревшей и недоступной для вызова.

Для управления ревизиями контейнера нужны имя или уникальный идентификатор контейнера, которому эта ревизия принадлежит. Чтобы узнать их, получите список контейнеров.

Создавать новую ревизию необходимо в следующих случаях:

  • загрузка новой версии Docker-образа в Container Registry;
  • изменение настроек ревизии.

Создать ревизию

Для создания ревизии необходимо сделать реестр или репозиторий, в которых находится Docker-образ, публичными или указать в настройках ревизии сервисный аккаунт, у которого есть права на скачивание Docker-образа. Например, роль container-registry.images.puller на каталог или реестр, в которых находится Docker-образ.

Консоль управления
CLI
Terraform
  1. В консоли управления перейдите в каталог, в котором находится контейнер.
  2. Откройте сервис Serverless Containers.
  3. Выберите контейнер, ревизию которого хотите создать.
  4. Перейдите на вкладку Редактор.
  5. Укажите параметры ревизии.
  6. Нажмите кнопку Создать ревизию.

Чтобы создать ревизию контейнера, выполните команду:

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 ревизия создается при каждом обновлении параметров работы ресурса.

Чтобы создать ревизию:

  1. Обновите в конфигурационном файле параметры работы ресурса 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, см. в документации провайдера.

  2. Проверьте корректность конфигурационных файлов.

    1. В командной строке перейдите в папку, где был создан конфигурационный файл.

    2. Выполните проверку с помощью команды:

      terraform plan
      

    Если конфигурация описана верно, в терминале отобразится список создаваемых или обновляемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  3. Если в конфигурации нет ошибок, выполните команду:

    terraform apply
    
  4. Подтвердите создание или обновление ресурсов: введите в терминал слово yes и нажмите Enter.

    После этого будет создана ревизия. Проверить создание ревизии можно в консоли управления или с помощью команды CLI:

    yc serverless container revision list
    

Получить список ревизий

Консоль управления
CLI
  1. В консоли управления перейдите в каталог, в котором находится контейнер.
  2. Откройте сервис Serverless Containers.
  3. Выберите контейнер, для которого хотите получить список ревизий.
  4. В разделе Ревизии будет показан список ревизий контейнера и подробная информация о них.

Если у вас еще нет интерфейса командной строки 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 |
+----------------------+----------------------+--------------------------------------------+---------------------+

Получить информацию о ревизии

Консоль управления
CLI
  1. В консоли управления перейдите в каталог, в котором находится контейнер.
  2. Откройте сервис Serverless Containers.
  3. Выберите контейнер, информацию о ревизии которого хотите получить.
  4. В разделе Ревизии будет показан список ревизий контейнера и подробная информация о них.

Если у вас еще нет интерфейса командной строки 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

Добавить переменную окружения

При добавлении переменных окружения создается новая ревизия контейнера. В существующую ревизию переменные окружения добавить нельзя.

Консоль управления
CLI
Terraform
  1. В консоли управления перейдите в каталог, в котором находится контейнер.
  2. Откройте сервис Serverless Containers.
  3. Выберите контейнер, для ревизии которого хотите добавить переменную окружения.
  4. Перейдите на вкладку Редактор.
  5. В открывшемся окне, в блоке Параметры образа, укажите переменную окружения и нажмите Добавить. Можно добавить несколько переменных окружения.
  6. Нажмите кнопку Создать ревизию. Будет создана новая ревизия контейнера с указанными переменными окружения.

Если у вас еще нет интерфейса командной строки 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 читайте в документации.

Чтобы добавить переменные окружения:

  1. Откройте файл конфигурации 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, см. в документации провайдера.

  2. Проверьте конфигурацию командой:

    terraform validate
    

    Если конфигурация является корректной, появится сообщение:

    Success! The configuration is valid.
    
  3. Выполните команду:

    terraform plan
    

    В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.

  4. Примените изменения конфигурации:

    terraform apply
    
  5. Подтвердите изменения: введите в терминал слово yes и нажмите Enter.

Проверить создание переменных окружения можно в консоли управления или с помощью команды CLI:

yc serverless container revision get <идентификатор_ревизии>

Была ли статья полезна?

Language / Region
© 2022 ООО «Яндекс.Облако»
В этой статье:
  • Создать ревизию
  • Получить список ревизий
  • Получить информацию о ревизии
  • Добавить переменную окружения