Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Serverless Integrations
    • Обзор
    • Workflows
    • EventRouter
  • Правила тарификации
  • Справочник Terraform
  • История изменений

В этой статье:

  • Перед началом работы
  • Создайте сервисный аккаунт
  • Создайте очередь
  • Создайте рабочий процесс
  • Создайте шину
  • Создайте коннектор
  • Создайте правило
  • Отправьте сообщение в очередь
  • Что дальше
  1. Начало работы
  2. EventRouter

Начало работы с EventRouter

Статья создана
Yandex Cloud
Улучшена
Tania L.
Обновлена 7 марта 2025 г.
  • Перед началом работы
  • Создайте сервисный аккаунт
  • Создайте очередь
  • Создайте рабочий процесс
  • Создайте шину
  • Создайте коннектор
  • Создайте правило
  • Отправьте сообщение в очередь
  • Что дальше

Примечание

EventRouter находится на стадии Preview. Чтобы получить доступ, отправьте заявку в консоли управления.

С помощью этой инструкции вы, используя шину EventRouter, перенаправите сообщение из очереди Message Queue в рабочий процесс Workflows.

Сообщение, которое поступает в очередь, будет перенаправляться в рабочий процесс, если соответствует фильтру, заданному в правиле внутри шины. Рабочий процесс при этом будет автоматически запускаться. Перед отправкой в него сообщение будет преобразовываться по шаблону, заданному в том же правиле, что и фильтр.

Перед началом работыПеред началом работы

Чтобы начать работать в Yandex Cloud:

  1. Войдите в консоль управления. Если вы еще не зарегистрированы, перейдите в консоль управления и следуйте инструкциям.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
  3. Если у вас еще нет каталога, создайте его.

Создайте сервисный аккаунтСоздайте сервисный аккаунт

Консоль управления
  1. В консоли управления выберите нужный каталог.
  2. В списке сервисов выберите Identity and Access Management.
  3. Нажмите кнопку Создать сервисный аккаунт.
  4. Введите имя сервисного аккаунта: sa-for-eventrouter.
  5. Нажмите кнопку Добавить роль и выберите роли serverless.workflows.executor, ymq.reader и ymq.writer.
  6. Нажмите кнопку Создать.

Создайте очередьСоздайте очередь

Консоль управления
  1. В консоли управления выберите сервис Message Queue.
  2. Нажмите кнопку Создать очередь.
  3. Введите имя очереди: sample-queue.
  4. Выберите тип Стандартная. Не изменяйте другие настройки.
  5. Нажмите кнопку Создать.
  6. Откройте созданную очередь.
  7. На вкладке Обзор в блоке Общая информация скопируйте URL очереди, он понадобится позднее.

Создайте рабочий процессСоздайте рабочий процесс

Примечание

Workflows находится на стадии Preview. Чтобы получить доступ, отправьте заявку в консоли управления.

Консоль управления
  1. В консоли управления в списке сервисов выберите Serverless Integrations.
  2. На панели слева выберите Workflows.
  3. В правом верхнем углу нажмите кнопку Создать рабочий процесс.
  4. В поле YaML-спецификация добавьте следующую спецификацию:
    yawl: "0.1"
    start: noopstep
    steps:
      noopstep:
        noOp:
          output: |-
            \(.)
    
  5. Разверните блок Дополнительные параметры.
  6. В поле Имя введите имя рабочего процесса: sample-workflow.
  7. В поле Сервисный аккаунт выберите сервисный аккаунт sa-for-eventrouter.
  8. Нажмите кнопку Создать.

Создайте шинуСоздайте шину

Консоль управления
  1. В консоли управления в списке сервисов выберите Serverless Integrations.
  2. На панели слева выберите EventRouter.
  3. В правом верхнем углу нажмите кнопку Создать шину.
  4. Введите имя шины: sample-bus.
  5. Нажмите кнопку Создать.

Создайте коннекторСоздайте коннектор

Консоль управления
  1. Выберите шину sample-bus.
  2. Перейдите на вкладку Коннекторы.
  3. В правом верхнем углу нажмите кнопку Создать коннектор.
  4. В поле Источник выберите Yandex Message Queue.
  5. В поле Очередь сообщений укажите очередь sample-queue.
  6. В поле Сервисный аккаунт укажите sa-for-eventrouter.
  7. Нажмите кнопку Создать.

Создайте правилоСоздайте правило

Консоль управления
  1. Выберите шину sample-bus.
  2. Перейдите на вкладку Правила.
  3. В правом верхнем углу нажмите кнопку Создать правило.
  4. Разверните блок Фильтр и укажите следующее jq-выражение для фильтрации сообщений:
    .httpMethod == "GET" and (.headers.Host | test("^d5dm"))
    
  5. В блоке Приёмники нажмите кнопку Добавить.
  6. В поле Тип выберите Yandex Workflows.
  7. В поле Рабочий процесс укажите sample-workflow.
  8. В поле Сервисный аккаунт укажите sa-for-eventrouter.
  9. Разверните блок Шаблон и укажите jq-выражение для преобразования сообщений:
    {
       "message": "API gateway host is \(.headers.Host)."
    }
    
  10. Нажмите кнопку Создать.

Отправьте сообщение в очередьОтправьте сообщение в очередь

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

AWS CLI
  1. Установите AWS CLI.

  2. Создайте статические ключи доступа для сервисного аккаунта sa-for-eventrouter. Надежно сохраните идентификатор и секретный ключ. После того, как вы закроете окно, параметры секретного ключа станут недоступны.

  3. Настройте AWS CLI:

    1. Запустите интерактивную настройку профиля:

      aws configure
      
    2. Укажите полученный ранее идентификатор ключа сервисного аккаунта:

      AWS Access Key ID [****************ver_]: <идентификатор_ключа_сервисного_аккаунта>
      
    3. Укажите полученный ранее секретный ключ сервисного аккаунта:

      AWS Secret Access Key [****************w5lb]: <секретный_ключ_сервисного_аккаунта>
      
    4. Укажите имя региона по умолчанию ru-central1:

      Default region name [ru-central1]: ru-central1
      
    5. Укажите формат выходных данных по умолчанию json:

      Default output format [None]: json
      
    6. Чтобы посмотреть текущие настройки профиля, выполните команду:

      aws configure list
      

      Результат:

            Name                    Value             Type    Location
            ----                    -----             ----    --------
         profile                <not set>             None    None
      access_key     ****************aBc1 shared-credentials-file
      secret_key     ****************DeF2 shared-credentials-file
          region              ru-central1      config-file    ~/.aws/config
      
  4. Отправьте первое сообщение в очередь sample-queue, используя сохраненный ранее URL очереди:

    aws sqs send-message \
      --message-body '{"httpMethod":"GET","headers":{"Host":"h6ds1lb3s0df********.k7******.apigw.yandexcloud.net"}}' \
      --endpoint https://message-queue.api.cloud.yandex.net/ \
      --queue-url <URL_очереди>
    

    Результат:

    {
        "MD5OfMessageBody": "c37859ba35a9958be041467c********",
        "MessageId": "f845****-9260****-7527****-f4b0****",
        "SequenceNumber": "0"
    }
    
  5. Убедитесь, что фильтр, который вы указали в правиле, не пропустил сообщение через шину:

    1. В консоли управления в списке сервисов выберите Serverless Integrations.
    2. На панели слева выберите Workflows.
    3. Перейдите на вкладку Запуски. На странице не должно быть выполненных запусков.
  6. Отправьте второе сообщение в очередь sample-queue, используя сохраненный ранее URL очереди:

    aws sqs send-message \
      --message-body '{"httpMethod":"GET","headers":{"Host":"d5dm1lba80md********.i9******.apigw.yandexcloud.net"}}' \
      --endpoint https://message-queue.api.cloud.yandex.net/ \
      --queue-url <URL_очереди>
    

    Результат:

    {
        "MD5OfMessageBody": "c37859ba35a9958be041467c********",
        "MessageId": "f845****-9260****-7527****-f4b0****",
        "SequenceNumber": "0"
    }
    
  7. Убедитесь, что фильтр, который вы указали в правиле, пропустил сообщение через шину, оно преобразовалось по шаблону и перенаправилось в рабочий процесс:

    1. В консоли управления в списке сервисов выберите Serverless Integrations.
    2. На панели слева выберите Workflows.
    3. Перейдите на вкладку Запуски. На странице должен отобразиться выполненный запуск.
    4. Выберите выполненный запуск.
    5. Убедитесь, что в блоке Данные на входе отображается преобразованное сообщение:
      {
         "message": "API gateway host is d5dm1lba80md********.i9******.apigw.yandexcloud.net."
      }
      

Что дальшеЧто дальше

  • Ознакомьтесь с концепциями EventRouter

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

Предыдущая
Workflows
Следующая
Все инструкции
Проект Яндекса
© 2025 ООО «Яндекс.Облако»