Yandex.Cloud
  • Сервисы
  • Почему Yandex.Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Yandex Container Registry
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Аутентифицироваться в Container Registry
    • Управление Docker-образом
      • Получить информацию об имеющихся Docker-образах
      • Создать Docker-образ
      • Загрузить Docker-образ в реестр
      • Скачать Docker-образ из реестра
      • Удалить Docker-образ из реестра
    • Управление реестром
      • Получить информацию об имеющихся реестрах
      • Создать реестр
      • Изменить реестр
      • Удалить реестр
    • Управление репозиторием
      • Получить информацию об имеющихся репозиториях
    • Управление политиками автоматического удаления Docker-образов
      • Получить информацию об имеющихся политиках удаления
      • Создать политику удаления
      • Изменить политику удаления
      • Сделать тестовый запуск политики удаления
      • Удалить политику удаления
    • Работа с ролями
      • Назначить роль
      • Просмотреть назначенные роли
      • Отозвать роль
  • Yandex Container Solution
  • Сценарии использования
    • Все сценарии
    • Запуск Docker-образа на виртуальной машине
    • Создание триггера с помощью Yandex Cloud Functions
  • Концепции
    • Обзор
    • Docker-образ
    • Реестр
    • Репозиторий
    • Политика автоматического удаления Docker-образов
    • Триггер Yandex Cloud Functions
    • Резервное копирование
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник API
    • Аутентификация в API
    • gRPC
      • Обзор
      • ImageService
      • RegistryService
      • RepositoryService
      • OperationService
    • REST
      • Обзор
      • Image
        • Обзор
        • delete
        • get
        • list
      • Registry
        • Обзор
        • create
        • delete
        • get
        • list
        • update
      • Repository
        • Обзор
        • list
  • Решение проблем
  • Вопросы и ответы
  1. Концепции
  2. Триггер Yandex Cloud Functions

Триггер Yandex Cloud Functions

  • События для настройки триггера
    • Фильтрация событий
  • Роли, необходимые для корректной работы триггера для Container Registry
  • Формат сообщения от триггера Container Registry

Триггер Yandex Cloud Functions запускает функцию, когда с Docker-образом Container Registry происходят определенные события. Триггер должен находиться в одном облаке с реестром, на события которого он подписан.

Триггеру для Container Registry необходим сервисный аккаунт для вызова функции.

События для настройки триггера

События с Docker-образами, которые можно отслеживать с помощью триггера:

  • Создание Docker-образа.
  • Удаление Docker-образа.
  • Создание тега Docker-образа.
  • Удаление тега Docker-образа.

Docker-образ всегда загружается с тегом (если тег не указан, Docker автоматически подставит тег latest), поэтому событие CreateImage всегда идет в паре с CreateImageTag. Docker-образу можно добавить произвольное количество тегов, загрузив тот же образ с другими тегами. В этом случае произойдет только событие CreateImageTag, без CreateImage.

Тег может переходить от одного Docker-образа к другому. Это происходит при загрузке нового Docker-образа с тегом, который уже используется в другом Docker-образе. В таком случае произойдет событие CreateImage для нового Docker-образа, а изменение тега спровоцирует два события: DeleteImageTag (удаление тега у старого Docker-образа) и CreateImageTag (присвоение тега новому Docker-образу).

При удалении Docker-образа удаляются все его теги. Поэтому удаление Docker-образа всегда вызывает событие DeleteImage, а также столько событий DeleteImageTag, сколько тегов было у Docker-образа в момент удаления.

Фильтрация событий

События фильтруются с помощью тегов и имен загружаемых Docker-образов. Если одновременно используются имя и тег, фильтрация происходит по принципу логического И: чтобы триггер сработал, образ должен подходить и по имени, и по тегу.

Роли, необходимые для корректной работы триггера для Container Registry

Для создания триггера вам необходимо:

  • Разрешение на сервисный аккаунт, от имени которого триггер выполняет операцию. Это разрешение входит в роли iam.serviceAccounts.user, editor и выше.
  • Роль container-registry.images.puller на реестр, события которого триггер обрабатывает.
  • Сервисному аккаунту назначить роль serverless.functions.invoker на каталог с функцией, которую вызывает триггер.

Подробнее об управлении доступом.

Формат сообщения от триггера Container Registry

После того, как триггер сработает, он отправит в функцию сообщение следующего вида:

{
  "messages": [
  {
    "event_metadata": {
      "cloud_id": "b1gvlrnl************",
      "created_at": "2020-09-07T11:09:14Z",
      "event_id": "crtpk611************",
      "event_type": "yandex.cloud.events.containerregistry.CreateImage",
      "folder_id": "b1g88tfl************",
      "tracing_context": {
        "parent_span_id": "-1491579************",
        "span_id": "-7232663************",
        "trace_id": "70e7************"
      }
    },
    "details": {
      "image_digest": "sha256:45f8f740272f1f2a053eade37d8d************************************",
      "image_id": "crti2c9b************",
      "registry_id": "crt2504s************",
      "repository_name": "crt2504s************/ubuntu",
      "tag": "latest"
    }
  }]
}
В этой статье:
  • События для настройки триггера
  • Фильтрация событий
  • Роли, необходимые для корректной работы триггера для Container Registry
  • Формат сообщения от триггера Container Registry
Language
Вакансии
Политика конфиденциальности
Условия использования
© 2021 ООО «Яндекс.Облако»