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

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

  • Перед началом работы
  • Создайте сервисный аккаунт
  • Создайте функцию, которая фильтрует данные
  • Создайте функцию, которая возвращает электронные адреса
  • Создайте рабочий процесс
  • Запустите рабочий процесс
  • Что дальше
  1. Начало работы
  2. Workflows

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

Статья создана
Yandex Cloud
Обновлена 6 марта 2025 г.
  • Перед началом работы
  • Создайте сервисный аккаунт
  • Создайте функцию, которая фильтрует данные
  • Создайте функцию, которая возвращает электронные адреса
  • Создайте рабочий процесс
  • Запустите рабочий процесс
  • Что дальше

Примечание

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

С помощью этой инструкции вы создадите рабочий процесс и запустите его. Во время выполнения рабочего процесса будут вызываться функции Yandex Cloud Functions.

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

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

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

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

Консоль управления
  1. В консоли управления выберите нужный каталог.
  2. В списке сервисов выберите Identity and Access Management.
  3. Нажмите кнопку Создать сервисный аккаунт.
  4. Введите имя сервисного аккаунта: sa-for-function.
  5. Нажмите кнопку Добавить роль и выберите роль functions.functionInvoker.
  6. Нажмите кнопку Создать.

Создайте функцию, которая фильтрует данныеСоздайте функцию, которая фильтрует данные

Консоль управления
  1. В консоли управления выберите сервис Cloud Functions.
  2. Создайте функцию:
    1. В правом верхнем углу нажмите кнопку Создать функцию.
    2. Введите имя функции: filter-function.
    3. Нажмите кнопку Создать.
  3. Создайте версию функции:
    1. В открывшемся окне Редактор выберите Node.js 18.
    2. Отключите опцию Добавить файлы с примерами кода.
    3. Нажмите кнопку Продолжить.
    4. Создайте файл index.js и добавьте в него следующий код:
      module.exports.handler = async function (data, context) {
          return {
              id: data.id,
              name: data.name,
              email: data.email,
          };
      };
      
    5. В блоке Параметры укажите в поле:
      • Точка входа — index.handler;
      • Сервисный аккаунт — sa-for-function.
    6. Нажмите кнопку Сохранить изменения.

Создайте функцию, которая возвращает электронные адресаСоздайте функцию, которая возвращает электронные адреса

Консоль управления
  1. В консоли управления выберите сервис Cloud Functions.
  2. Создайте функцию:
    1. В правом верхнем углу нажмите кнопку Создать функцию.
    2. Введите имя функции: return-function.
    3. Нажмите кнопку Создать.
  3. Создайте версию функции:
    1. В открывшемся окне Редактор выберите Node.js 18.
    2. Отключите опцию Добавить файлы с примерами кода.
    3. Нажмите кнопку Продолжить.
    4. Создайте файл index.js и добавьте в него следующий код:
      module.exports.handler = async function (data, context) {
          return {
              result: "OK",
              emails: data.loaded_users.map(p => p.email)
          };
      };
      
    5. В блоке Параметры укажите в поле:
      • Точка входа — index.handler;
      • Сервисный аккаунт — sa-for-function.
    6. Нажмите кнопку Сохранить изменения.

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

Консоль управления
  1. В консоли управления в списке сервисов выберите Serverless Integrations.

  2. На панели слева выберите Workflows.

  3. В правом верхнем углу нажмите кнопку Создать рабочий процесс.

  4. В поле YaML-спецификация добавьте спецификацию, которая приведена ниже. Укажите в поле functionId:

    • в шаге process_user_transform_info идентификатор функции filter-function;
    • в шаге upload_users идентификатор функции return-function.
    yawl: "0.1"
    start: get_users
    defaultRetryPolicy:
      maxDelay: 10s
      retryCount: 2
      errorList:
        - STEP_QUOTA_EXCEEDED
    steps:
      get_users:
        httpCall:
          url: 'https://jsonplaceholder.typicode.com/\(.resource_type)'
          method: GET
          headers: {}
          query: {}
          output: '\({loaded_users: .})'
          next: process_users
      process_users:
        foreach:
          input: \(.loaded_users)
          output: '\({loaded_users: .})'
          next: upload_users
          do:
            start: process_user_get_info
            steps:
              process_user_get_info:
                httpCall:
                  url: https://jsonplaceholder.typicode.com/users/\(.id)
                  method: GET
                  headers: {}
                  query: {}
                  next: process_user_transform_info
                  output: '\({user: .})'
                  retryPolicy:
                    retryCount: 2
                    errorList:
                      - HTTP_CALL_500
              process_user_transform_info:
                functionCall:
                  functionId: <идентификатор_функции>
      upload_users:
        functionCall:
          functionId: "<идентификатор_функции>"
          input: '\({loaded_users, resource_type})'
    
  5. Разверните блок Дополнительные параметры.

  6. В поле Имя введите имя рабочего процесса.

  7. В поле Сервисный аккаунт выберите сервисный аккаунт sa-for-function.

  8. Нажмите кнопку Создать.

Запустите рабочий процессЗапустите рабочий процесс

Консоль управления
  1. Выберите рабочий процесс.
  2. В правом верхнем углу нажмите Запустить.
  3. Введите входные данные в формате JSON:
    {
      "resource_type": "users"
    }
    
  4. Когда статус рабочего процесса изменится с Выполняется на Выполнен, в блоке Данные на выходе появится следующий JSON-объект:
    {
      "result": "OK",
      "emails": [
        "Sincere@april.biz",
        "Shanna@melissa.tv",
        "Nathan@yesenia.net",
        "Julianne.OConner@kory.org",
        "Lucio_Hettinger@annie.ca",
        "Karley_Dach@jasper.info",
        "Telly.Hoeger@billy.biz",
        "Sherwood@rosamond.me",
        "Chaim_McDermott@dana.io",
        "Rey.Padberg@karina.biz"
      ]
    }
    

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

  • Посмотрите еще один пример спецификации рабочего процесса
  • Ознакомьтесь с концепциями Workflows

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

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