Учебник. Создание выполняемых по расписанию рабочих процессов автоматизации с помощью Azure Logic Apps

Область применения: Azure Logic Apps (потребление)

В этом учебнике показано, как создать пример рабочего процесса приложения логики, который выполняется по расписанию. В частности, это пример рабочего процесса проверяет время поездки между двумя пунктами с учетом трафика и выполняется каждый будний день утром. Если время превышает определенный предел, рабочий процесс отправляет электронное письмо с указанием времени в пути и дополнительного времени, необходимого, чтобы прибыть в пункт назначения. Рабочий процесс включает в себя различные шаги и начинается с запуска триггера по расписанию, за которым следует действие в Картах Bing, действие по выполнению операций с данными, действие потока управления и действие уведомления по электронной почте.

В этом руководстве описано следующее:

  • Создание пустого приложения логики и рабочего процесса.
  • Добавление триггера повторения, указывающего расписание для выполнения рабочего процесса.
  • Добавьте действие для Карт Bing, которое получает время поездки для маршрута.
  • Добавление действия, которое создает переменную, преобразует время в пути из секунд в минуты и сохраняет результат в переменной.
  • Добавление условия, которое сравнивает время в пути с заданным ограничением.
  • Добавьте действие, которое отправляет сообщение электронной почты, если время в пути превышает ограничение.

Когда все будет готово, ваш рабочий процесс выглядеть следующим образом:

Снимок экрана, на котором показана общая схема рабочего процесса примера приложения логики.

Предварительные требования

Создание рабочего процесса приложения логики категории "Потребление"

  1. Войдите на портал Azure с помощью своей учетной записи Azure.

  2. На домашней странице Azure выберите Создать ресурс.

  3. В меню Azure Marketplace выберите Интеграция>Приложение логики.

    Снимок экрана, на котором показано меню Azure Marketplace с выбранными пунктами

  4. В области Создание приложения логики на вкладке Основные сведения укажите следующие сведения о ресурсе приложения логики.

    Снимок экрана: портал Azure, область создания приложения логики и сведения о новом ресурсе приложения логики.

    Свойство Обязательно Значение Описание
    Подписка Да <Azure-subscription-name> Имя подписки Azure. В этом примере используется оплата по мере использования.
    Группа ресурсов Да LA-TravelTime-RG Группа ресурсов Azure, в которой будут созданы ресурс приложения логики и связанные ресурсы. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки ((, )) и точки (.).
    имя; Да LA-TravelTime Имя ресурса приложения логики, которое должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки ((, )) и точки (.).
  5. Прежде чем продолжить выбор, перейдите к разделу План. Для свойства Тип плана выберите значение Потребление, чтобы отобразить только параметры рабочего процесса приложения логики "Потребление", который выполняется в мультитенантной службе Azure Logic Apps.

    Свойство Тип плана также определяет используемую модель выставления счетов.

    Тип плана Описание
    Стандартный Приложение логики такого типа выбрано по умолчанию, выполняется в однотенантной среде Azure Logic Apps и использует стандартную модель выставления счетов.
    Потребление Приложение логики такого типа выполняется в глобальной мультитенантной среде Azure Logic Apps и использует модель выставления счетов на основе потребления.
  6. Далее выберите значения следующих свойств.

    Свойство Обязательно Значение Описание
    Регион Да западная часть США Регион центра обработки данных Azure, в котором будет храниться информация приложения. В этом примере приложение логики развертывается в регионе Западная часть США в Azure.

    Примечание. Если ваша подписка связана со средой службы интеграции, в этот список входят такие среды.
    Включение анализа журналов Да Нет Этот параметр отображается и применяется только при выборе типа приложения логики Потребление. Измените этот параметр, только если требуется включить ведение журнала диагностики. Для целей этого учебника оставьте выбор по умолчанию.
  7. Когда все будет готово, выберите Просмотр и создание. После того, как Azure проверит сведения о ресурсе приложения логики, выберите Создать.

  8. После развертывания приложения в Azure выберите Перейти к ресурсу.

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

  9. Прокрутите вниз раздел с видео и часто используемыми триггерами до раздела Шаблоны и выберите Пустое приложение логики.

    Снимок экрана: область выбора шаблона рабочего процесса с выбранным вариантом

Затем добавьте триггер повторения, который будет запускать рабочий процесс по заданному расписанию. Каждый рабочий процесс должен запускаться по триггеру, который активируется, когда происходит определенное событие или если новые данные соответствуют заданным условиям. Дополнительные сведения см. в статье Создание примера рабочего процесса приложения логики потребления в мультитенантном Azure Logic Apps.

Добавление триггера повторения

  1. В конструкторе рабочих процессов под полем поиска выберите Встроенный.

  2. В поле поиска конструктора введите повторение и выберите триггер с именем Повторение.

    Снимок экрана: портал Azure, конструктор рабочих  процессов, поле поиска с введенным условием

  3. На фигуре Повторение нажмите кнопку с многоточием ( ... ), а затем нажмите кнопку Переименовать. Переименуйте триггер, используя это описание: Check travel time every weekday morning.

    Снимок экрана, на котором выделена кнопка с многоточием, открыт список

  4. В триггере измените эти свойства так, как указано и показано в этой статье.

    Снимок экрана, демонстрирующий изменение интервала и частоты срабатывания триггера.

    Свойство Обязательно Значение Описание
    Интервал Да 1 Количество интервалов ожидания между проверками.
    Частота Да Неделя Единица измерения времени, используемая для повторения.
  5. В разделах Интервал и Частота откройте список Добавить новый параметр и выберите эти свойства для добавления в триггер.

    • В эти дни
    • В эти часы
    • В эти минуты

    Снимок экрана, на котором показан открытый список

  6. Теперь задайте значения для дополнительных свойств, как показано здесь.

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

    Свойство Значение Описание
    В эти дни понедельник, вторник, среда, четверг, пятница Этот параметр доступен, только если для параметра Частота задано значение Неделя.
    В эти часы 7, 8, 9 Этот параметр доступен, только если для параметра Частота задано значение Неделя или День. Для такого повторения выберите время суток. Этот пример выполняется по часовым меткам 7, 8 и 9.
    В эти минуты 0, 15, 30, 45 Этот параметр доступен, только если для параметра Частота задано значение Неделя или День. Для такого повторения выберите минуты в течение суток. Этот пример выполняется каждые 15 минут, начиная с отметки нулевого часа.

    Этот триггер срабатывает каждый день недели, каждые 15 минут с 7:00 до 9:45. В поле Просмотр отображается расписание повторения. Дополнительные сведения см. в статье Планирование регулярно выполняемых задач и рабочих процессов с помощью приложений логики и разделе Триггер повторения.

  7. Чтобы скрыть сведения о триггере, сверните фигуру, щелкнув внутри заголовка фигуры.

    Снимок экрана, на котором показана свернутая фигура триггера.

  8. Сохраните результаты своих действий. На панели инструментов конструктора щелкните Сохранить.

Рабочий процесс приложения логики теперь находится в портале Azure, но никакие действия, кроме триггеров, срабатывающих по указанному расписанию, не выполняются. Итак, добавим действие, отвечающее при срабатывании триггера.

Получение данных о времени в пути для маршрута

Теперь, когда у вас есть триггер, добавьте действие, которое получает данные о времени в пути между двумя местами. Azure Logic Apps предоставляет соединитель для API Карт Bing, чтобы вы могли легко получить эту информацию. Прежде чем начать эту задачу, убедитесь, что у вас есть ключ API Карт Bing, как описано в предварительных требованиях для этого руководства.

  1. В конструкторе рабочих процессов в триггере "Повторение" выберите Новый шаг.

  2. В разделе Choose an operation (Выберите операцию) выберите Стандартная. В поле поиска введите карты bing и выберите действие с именем Получить маршрут.

    Снимок экрана, на котором показан список выбора операций, отфильтрованный по действиям

  3. Если у вас нет подключения к Картам Bing, появится запрос на его установку. Укажите сведения о подключении, как показано и описано в этой статье, а затем выберите Создать.

    Снимок экрана, на котором показано окно подключения к Картам Bing с указанным именем подключения и ключом API Карт Bing.

    Свойство Обязательно Значение Описание
    Имя соединения Да BingMapsConnection Укажите имя подключения. В этом примере используется BingMapsConnection.
    Ключ API. Да <Bing-Maps-API-key> Введите ключ API Карт Bing, полученный ранее. Если у вас нет ключа Карт Bing, узнайте, как получить его.
  4. Переименуйте действие с использованием этого описания: Get route and travel time with traffic.

  5. В действии откройте Добавить новый список параметров и выберите эти свойства.

    • Optimize (Оптимизация)
    • Distance unit (Единица расстояния)
    • Travel mode (Режим движения)

    Снимок экрана, на котором выбраны свойства Get route (Получить маршрут), Optimize (Оптимизация), Distance unit (Единица расстояния) и Travel mode (Режим движения).

  6. Теперь введите значения для дополнительных свойств, как показано здесь.

    Снимок экрана, на котором показаны дополнительные значения свойств для действия Get route (Получить маршрут).

    Свойство Обязательно Значение Описание
    Пункт маршрута 1 Да <исходный пункт> Начало маршрута. В этом примере указан пример начального адреса.
    Пункт маршрута 2 Да <пункт назначения> Место назначения маршрута. В этом примере указан пример адреса назначения.
    Optimize (Оптимизация) Нет timeWithTraffic Параметр для оптимизации маршрута, например расстояние, время в пути в соответствии с текущей загрузкой дорог и т. д. Выберите значение параметра timeWithTraffic.
    Distance unit (Единица расстояния) Нет <выбранная единица> Единицы измерения расстояния для маршрута. В этом примере в качестве единицы измерения используется миля.
    Travel mode (Режим движения) Нет Driving (Движение на автомобиле) Режим движения для маршрута. Выберите режим Автомобиль.

    Дополнительные сведения об этих параметрах и значениях см. в статье Расчет маршрута.

  7. На панели инструментов конструктора щелкните Сохранить.

Затем создайте переменную, чтобы преобразовать и сохранить текущее время в минутах, а не в секундах. Таким образом можно избежать повторного преобразования и проще использовать значение на последующих шагах.

Создание переменной для сохранения времени в пути

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

По умолчанию действие Get route (Получить маршрут) возвращает текущее время в пути в секундах в соответствии с загрузкой дорог из свойства Travel Duration Traffic (Трафик длительности пути). Преобразовав и сохранив это значение в минутах, вы упрощаете его повторное использование, при котором не потребуется преобразование.

  1. В конструкторе в действии Get route (Получить маршрут) выберите Новый шаг.

  2. В разделе Choose an operation (Выберите операцию) выберите Встроено. В поле поиска введите переменные и выберите действие с именем Инициализировать переменную.

    Снимок экрана, на котором показано выбранное действие

  3. Переименуйте действие с использованием этого описания: Create variable to store travel time.

  4. Укажите эти сведения для переменной, как показано в этой таблице и в инструкциях под ней.

    Свойство Обязательно Значение Описание
    имя; Да travelTime Имя для переменной. В этом примере используется travelTime.
    Тип Да Целое число Тип данных для переменной.
    Значение Нет Выражение, преобразующее текущее время в секундах в минуты (см. шаги в этой таблице). Начальное значение для переменной
    1. Чтобы создать выражение для свойства Значение, щелкните внутри поля для отображения списка динамического содержимого. При необходимости расширяйте окно браузера, пока не появится динамический список. В списке динамическое содержимое выберите Выражение, чтобы открыть редактор выражений.

      Снимок экрана, показывающий действие

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

    2. В редакторе выражений введите следующее выражение: div(,60)

      Снимок экрана, на котором показан редактор выражений с введенным выражением

    3. Установите курсор внутри выражения между левой скобкой ( ( ) и запятой ( , ) и выберите Динамическое содержимое.

      Снимок экрана, на котором показано место размещения курсора в выражении

    4. В списке динамического содержимого выберите значение свойства Travel Duration Traffic (Трафик длительности пути).

      Снимок экрана, на котором показано выбранное значение свойства Travel Duration Traffic (Трафик длительности пути).

    5. Как только значение свойства в выражении разрешится, нажмите кнопку ОК.

      Снимок экрана, на котором показана выбранная кнопка

      Свойство Value теперь отображается, как показано ниже:

      Снимок экрана, показывающий свойство

  5. Сохраните результаты своих действий. На панели инструментов конструктора щелкните Сохранить.

Затем добавьте условие, которое проверяет, превышает ли текущее время в пути определенное ограничение.

Сравнение времени в пути с ограничением

  1. Под действием Create variable to store travel time (Создать переменную для сохранения времени в пути) выберите Новый шаг.

  2. В разделе Choose an operation (Выберите операцию) выберите Встроено. В поле поиска введите условие. В списке действия выберите действие с именем Условие.

    Снимок экрана, на котором выбрано действие

  3. Переименуйте условие, используя описание: If travel time exceeds limit.

  4. Создайте условие, которое проверяет, превышает ли значение свойства travelTime заданное ограничение, как показано ниже:

    1. Внутри условия, в его левой части, щелкните мышью в поле Выберите значение.

    2. В появившемся списке динамического содержимого выберите в разделе Переменные свойство с именем travelTime.

      Снимок экрана, на котором в левой части условия отображается поле

    3. В среднем поле сравнения выберите оператор с именем больше.

    4. В левой части условия в поле Выберите значение введите это предельное значение: 15

      После ввода значения условие должно выглядеть приблизительно так, как показано в примере ниже:

      Снимок экрана, на котором показано выполненное условие для сравнения времени поездки с указанным предельным значением.

  5. Сохраните результаты своих действий. На панели инструментов конструктора щелкните Сохранить.

Затем добавьте действие, выполняемое, когда время в пути превышает ограничение.

Отправка электронного сообщения при превышении ограничения

Теперь добавьте действие, которое отправляет сообщение электронной почты, когда время в пути превышает предельное значение. Это сообщение электронной почты содержит текущее время в пути и дополнительное время, необходимое для поездки по заданному маршруту.

  1. Внутри ветви Истинна условия выберите Добавить действие.

  2. В разделе Choose an operation (Выберите операцию) выберите Стандартная. В поле поиска введите отправка сообщения. Список возвращает множество результатов, поэтому для фильтрации списка сначала выберите нужный соединитель электронной почты.

    Например, если у вас есть учетная запись электронной почты Outlook, выберите соединитель для этого типа учетной записи:

    • Для рабочих или учебных учетных записей Azure выберите Office 365 Outlook.
    • Для личных учетных записей Майкрософт выберите Outlook.com.

    Для продолжения в этом примере следует выбрать Office 365 Outlook.

    Снимок экрана, на котором показан список Choose an operation (Выберите операцию) с выбранной категорией

  3. Когда отобразятся действия соединителя, выберите действие отправки сообщения, например:

    Снимок экрана, на котором выбрано действие Send an email (Отправить электронное письмо).

  4. Если у вас еще нет подключения, войдите и пройдите проверку подлинности для доступа к своей учетной записи электронной почты при появлении соответствующего запроса.

    Azure Logic Apps создаст подключение к учетной записи электронной почты.

  5. Переименуйте действие с использованием этого описания: Send email with travel time.

  6. В поле свойства Кому введите адрес электронной почты получателя. Для тестировании можно использовать свой адрес.

  7. В поле свойства Тема укажите тему электронного сообщения и включите переменную travelTime, выполнив приведенные ниже действия.

    1. Введите текст Current travel time (minutes): с пробелом. Оставьте курсор в поле Тема, чтобы список динамического содержимого оставался открытым.

    2. В списке динамическое содержимое в заголовке Переменные выберите Дополнительно, чтобы появилась переменная с именем travelTime.

      Снимок экрана, на котором показан список динамического содержимого с разделом

      Примечание

      В списке динамического содержимого переменная travelTime не отображается автоматически, так как свойство Тема принимает строковое значение, а travelTime — целочисленное значение.

      Снимок экрана, на котором показан список динамического содержимого с выбранной переменной travelTime.

  8. Для свойства Текст укажите текст сообщения электронной почты, выполнив следующие действия.

    1. Введите текст Add extra travel time (minutes): с пробелом. Оставьте курсор в поле Текст, чтобы список динамического содержимого оставался открытым.

    2. В списке динамическое содержимое выберите Выражение, чтобы открыть редактор выражений.

      Снимок экрана, на котором отображается список динамического содержимого с выбранной вкладкой

    3. В редакторе выражений введите sub(,15), чтобы рассчитать, на сколько минут превышено предельное значение:

      Снимок экрана, на котором показан редактор выражений с введенным выражением

    4. Установите курсор внутри выражения между левой скобкой ( ( ) и запятой ( , ) и выберите Динамическое содержимое.

      Снимок экрана, на котором показано место размещения курсора в выражении

    5. В разделе Переменные выберите travelTime.

      Снимок экрана, на котором показан список динамического содержимого с выбранной переменной travelTime.

    6. Как только свойство в выражении разрешится, нажмите кнопку ОК.

      Снимок экрана, на котором показан список динамического содержимого и выделена кнопка

      Свойство Body теперь отображается, как показано ниже:

      Снимок экрана, на котором показан список динамического содержимого с выражением, разрешенным в свойстве

  9. Сохраните результаты своих действий. На панели инструментов конструктора щелкните Сохранить.

Затем протестируйте и запустите рабочий процесс, который теперь выглядит, как показано в примере:

Снимок экрана, на котором показан готовый пример рабочего процесса приложения логики

Запуск рабочего процесса

Чтобы вручную запустить рабочий процесс, на панели инструментов конструктора щелкните Запустить триггер>Запустить.

  • Если текущее время в пути не превышает ограничений, рабочий процесс ничего не делает и ожидает следующего интервала перед повторной проверкой.

  • Если текущее время в пути превышает ограничение, вы получаете электронное письмо с текущим временем в пути и количеством минут сверх ограничения. Ниже приведен пример сообщения, которое отправляет рабочий процесс.

    Снимок экрана, на котором показан пример электронного письма, сообщающего о текущем времени поездки и дополнительном времени в пути, превышающем заданное предельное значение.

    Совет

    Если электронные сообщения не приходят, проверьте папку нежелательной почты. Фильтр нежелательной почты может перенаправлять такие виды электронных сообщений. В противном случае, если вы не уверены, что рабочий процесс работает правильно, см. статью Устранение неполадок рабочего процесса.

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

Чтобы создать другие рабочие процессы, использующие триггер Повторение, ознакомьтесь со следующими шаблонами, которые станут доступны после создания нового ресурса приложения логики:

  • Получайте ежедневные напоминания, отправленные вам.
  • Удалите старые большие двоичные объекты Azure.
  • Добавьте сообщение в очередь службы хранилища Azure.

Очистка ресурсов

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

  1. В поле поиска портала Azure введите имя созданной группы ресурсов. В результатах в разделе Группы ресурсов выберите группу ресурсов.

    В этом примере показано создание группы ресурсов с именем LA-TravelTime-RG.

    Снимок экрана: поле поиска Azure, содержащее текст

    Совет

    Если на домашней странице Azure группа ресурсов отображается в разделе Последние ресурсы, ее можно выбрать там.

  2. В меню группы ресурсов выберите пункт Обзор. На панели инструментов области Обзор выберите Удалить группу ресурсов.

    Снимок экрана, на котором показана область

  3. В отобразившейся области подтверждения введите имя группы ресурсов и выберите Удалить.

Дальнейшие действия

Из этого учебника вы узнали, как создать рабочий процесс приложения логики, который проверяет загрузку дорог на основе заданного расписания (по будним дням) и принимает меры (отправляет сообщение электронной почты), когда время в пути превышает указанное ограничение. Теперь вы можете узнать, как создать рабочий процесс, который отправляет запросы для списка рассылки на утверждение, интегрируя службы Azure, службы Майкрософт и другие приложения, предоставляемые по модели "Программное обеспечение как услуга" (SaaS).