Поделиться через


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

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

Azure Logic Apps дает возможность автоматизировать рабочие процессы и интегрировать данные в различные службы Azure, Майкрософт, локальные системы и другие приложения SaaS (программное обеспечение как услуга). В этом руководстве показано, как создать рабочий процесс приложения логики, который обрабатывает входящие сообщения электронной почты и любые вложения, анализирует содержимое электронной почты с помощью Функции Azure, сохраняет содержимое в хранилище Azure и отправляет сообщение электронной почты для просмотра содержимого.

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

  • Настройка хранилища Azure и Обозревателя службы хранилища для проверки сохраненных электронных писем и вложений.
  • Создание функции Azure, которая удаляет HTML из электронных писем. В этом руководстве содержится код, который можно использовать для этой функции.
  • Создайте пустой рабочий процесс приложения логики потребления.
  • Добавление триггера, который отслеживает сообщения электронной почты для вложений.
  • Добавление условия, которое проверяет наличие вложений в сообщениях электронной почты.
  • Добавление действия, которое вызывает функцию Azure при наличии вложения в сообщении электронной почты.
  • Добавление действия, которое создает хранилище BLOB-объектов для сообщения электронной почты и вложений.
  • Добавление действия, которое отправляет электронные уведомления.

На следующем снимка экрана показан рабочий процесс на высоком уровне:

Снимок экрана: пример рабочего процесса потребления высокого уровня для этого руководства.

Необходимые компоненты

Настройка хранилища для сохранения вложений

Входящие сообщения электронной почты и вложения можно сохранить в виде больших двоичных объектов в контейнере хранилища Azure.

  1. В портал Azure с учетными данными учетной записи Azure создайте учетную запись хранения, если у вас еще нет учетной записи хранения, используя следующие сведения на вкладке "Основные сведения".

    Свойство Значение Описание
    Подписка <имя-подписки-Azure> Название вашей подписки Azure
    Группа ресурсов <Azure-resource-group> Имя группы ресурсов Azure, используемой для упорядочения связанных ресурсов и управления ими. В этом примере используется LA-Tutorial-RG.

    Примечание. Группа ресурсов существует в определенном регионе. Хотя элементы из этого руководства могут быть недоступны во всех регионах, попробуйте по возможности использовать тот же регион.
    Имя учетной записи хранения <Azure-storage-account-name> Имя учетной записи хранения, которое должно содержать от 3 до 24 символов и которое может включать только строчные буквы и цифры. В этом примере используется attachmentstorageacct.
    Регион <Azure-region> Регион для хранения сведений об учетной записи хранения. В этом примере используется регион западная часть США.
    Производительность Стандартные Этот параметр определяет поддерживаемые типы данных и носители для хранения данных. См. раздел Типы учетных записей хранения.
    Избыточность Геоизбыточное хранилище (GRS) Этот параметр позволяет хранить несколько копий данных в качестве защиты от запланированных и незапланированных событий. Дополнительные сведения см. в статье Репликация службы хранилища Azure.

    Учетную запись хранения также можно создать с помощью Azure PowerShell или Azure CLI.

  2. Когда вы закончите, нажмите кнопку "Проверить>создание".

  3. После развертывания учетной записи хранения в Azure найдите учетную запись хранения и получите ключ доступа к ней:

    1. В меню учетной записи хранения в разделе "Безопасность и сеть" выберите ключи доступа.

    2. Скопируйте имя учетной записи хранения и ключ key1, сохраните эти значения в безопасном месте.

    Получить ключ доступа к учетной записи хранения также можно с помощью Azure PowerShell или Azure CLI.

  4. Создайте контейнер хранилища BLOB-объектов для вложений электронной почты.

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

    2. На панели инструментов "Контейнеры" выберите контейнер.

    3. В разделе "Новый контейнер" введите вложения в качестве имени контейнера. В разделе Общедоступный уровень доступа выберите Container (anonymous read access for containers and blobs) (Контейнер (анонимный доступ на чтение к контейнерам и большим двоичным объектам))>ОК.

    По завершении список контейнеров теперь отображает новый контейнер хранилища.

    Контейнер хранилища также можно создать с помощью Azure PowerShell или Azure CLI.

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

Настройка Обозревателя службы хранилища

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

  1. Запустите Microsoft Azure Storage Explorer. Войдите в систему с использованием учетной записи Azure.

    Примечание.

    Если запрос не отображается, на панели действий Обозреватель службы хранилища выберите "Управление учетными записями" (значок учетной записи).

  2. В окне "Выбор среды Azure" выберите среду Azure и нажмите кнопку "Далее".

    Этот пример продолжается путем выбора глобального мультитенантного Azure.

  3. В появившемся окне браузера войдите с помощью учетной записи Azure.

  4. Вернитесь к Обозреватель службы хранилища и окне управления учетными записями и убедитесь, что выбран правильный клиент и подписка Microsoft Entra.

  5. На панели действий Обозреватель службы хранилища выберите "Открыть диалоговое окно подключения".

  6. В окне выбора ресурса выберите учетную запись хранения или службу.

  7. В окне "Выбор метода подключения" выберите имя учетной записи и ключ>Далее.

  8. В окне "Подключение к служба хранилища Azure" укажите следующие сведения и нажмите кнопку "Далее".

    Свойство Значение
    Отображаемое имя Понятное имя подключения
    Имя учетной записи Имя учетной записи хранения
    Ключ учетной записи Ключ доступа, сохраненный ранее
  9. В окне "Сводка" подтвердите сведения о подключении и нажмите кнопку "Подключить".

    Обозреватель службы хранилища создает подключение и отображает учетную запись хранения в окне обозревателя в разделе Эмулятор и присоединенные>учетные записи хранения.

  10. Чтобы найти свой контейнер хранилища BLOB-объектов, в разделе Учетные записи хранения разверните свою учетную запись хранения attachmentstorageacct, Blob Containers (Контейнеры больших двоичных объектов), в которых находится контейнер attachments, например:

    Снимок экрана: Обозреватель службы хранилища — поиск контейнера хранилища.

Создайте функцию Azure, которая удаляет HTML из входящей электронной почты.

Создание функции для удаления HTML

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

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

    1. На вкладке Основные сведения укажите следующую информацию.

      Свойство Значение Описание
      Подписка <название-вашей-подписки-Azure> Та же подписка Azure, которая использовалась ранее
      Группа ресурсов LA-Tutorial-RG Та же группа ресурсов Azure, которая использовалась ранее
      Имя приложения-функции <function-app-name> Имя приложения-функции, которое должно быть глобально уникальным в Azure. В этом примере уже используется CleanTextFunctionApp, поэтому укажите другое имя, например MyCleanTextFunctionApp-your-name<>
      Вы хотите развернуть код или образ контейнера? Код Публикация файлов кода.
      Стек среды выполнения <предпочтительный язык> Выберите среду выполнения, которая поддерживает нужный функциональный язык программирования. Редактирование на портале доступно только для скриптов JavaScript, PowerShell, TypeScript и C#. Функции библиотеки классов C#, а также функции Java и Python необходимо разрабатывать локально. Для функций C# и F# выберите .NET.
      Версия <номер версии> Выберите версию для установленной среды выполнения.
      Регион <Azure-region> Тот же регион, который вы ранее использовали. В этом примере используется регион западная часть США.
      Операционная система <операционная система> Операционная система предварительно выбирается на основе выбора стека среды выполнения, но вы можете выбрать операционную систему, которая поддерживает ваш любимый язык программирования функций. Редактирование на портале поддерживается только в Windows. В этом примере выбирается Windows.
      Варианты размещения и планы Потребление (бессерверный) Выберите план размещения, определяющий, как ресурсы выделяются приложению-функции. В плане потребления по умолчанию ресурсы добавляются динамически в соответствии с потребностями функций. При таком бессерверном размещении вы платите только за время выполнения функций. Когда выполняется план службы приложений необходимо управлять масштабированием приложения-функции.
    2. Нажмите кнопку "Далее" — хранилище. На вкладке хранилища укажите следующие сведения:

      Свойство Значение Описание
      Учетная запись хранения cleantextfunctionstorageacct Создайте учетную запись хранения для использования приложением-функцией. Имена учетных записей хранения должны быть от 3 до 24 символов длиной и могут содержать только строчные буквы и цифры.

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

    4. После создания и развертывания ресурса приложения-функции Azure выберите "Перейти к ресурсу".

  2. Теперь создайте функцию локально как создание функции в портал Azure ограничено. Обязательно используйте шаблон триггера HTTP, укажите следующие сведения для функции и используйте включенный пример кода, который удаляет HTML и возвращает результаты вызывающей функции:

    Свойство Значение
    Имя функции RemoveHTMLFunction.
    Уровень авторизации Function
    #r "Newtonsoft.Json"
    
    using System.Net;
    using Microsoft.AspNetCore.Mvc;
    using Microsoft.Extensions.Primitives;
    using Newtonsoft.Json;
    using System.Text.RegularExpressions;
    
    public static async Task<IActionResult> Run(HttpRequest req, ILogger log) 
    {
       log.LogInformation("HttpWebhook triggered");
    
       // Parse query parameter
       string emailBodyContent = await new StreamReader(req.Body).ReadToEndAsync();
    
       // Replace HTML with other characters
       string updatedBody = Regex.Replace(emailBodyContent, "<.*?>", string.Empty);
       updatedBody = updatedBody.Replace("\\r\\n", " ");
       updatedBody = updatedBody.Replace(@"&nbsp;", " ");
    
       // Return cleaned text
       return (ActionResult)new OkObjectResult(new { updatedBody });
    }
    
  3. Чтобы протестировать функцию, можно использовать следующие примеры входных данных:

    {"name": "<p><p>Testing my function</br></p></p>"}

    Выходные данные функции выглядят следующим образом:

    {"updatedBody":"{\"name\": \"Testing my function\"}"}
    

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

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

  1. В поле поиска верхнего уровня портал Azure введите приложения логики и выберите приложения логики.

  2. На странице Logic Apps нажмите Добавить.

  3. На странице "Создание приложения логики" в разделе "План" выберите "Потребление" в качестве типа плана, который затем отображает только параметры рабочих процессов приложения логики потребления. Укажите следующие сведения и нажмите кнопку "Проверить и создать".

    Свойство Значение Описание
    Подписка <название-вашей-подписки-Azure> Та же подписка Azure, которая использовалась ранее
    Группа ресурсов LA-Tutorial-RG Та же группа ресурсов Azure, которая использовалась ранее
    Имя приложения логики LA-ProcessAttachment Имя приложения логики и рабочего процесса. Приложение логики потребления и рабочий процесс всегда имеют одинаковое имя.
    Регион Западная часть США Регион, использованный ранее
    Включение анализа журналов Нет В рамках этого руководства используйте параметр Отключено.
  4. Подтвердите предоставленные сведения и нажмите кнопку "Создать". После развертывания приложения в Azure выберите Перейти к ресурсу.

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

Добавление триггера для проверки входящих сообщений электронной почты

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

В этом примере используется соединитель Office 365 Outlook, который требует входа с помощью рабочей или учебной учетной записи Майкрософт. Если вы используете личную учетную запись Майкрософт, используйте соединитель Outlook.com.

  1. В конструкторе рабочих процессов выберите " Добавить триггер".

  2. После открытия панели "Добавить триггер" в поле поиска введите office 365 outlook. В списке результатов триггеров в Office 365 Outlook выберите "При поступлении нового сообщения электронной почты" (версия 3).

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

  4. Теперь укажите условия триггера для проверки новой электронной почты и запуска рабочего процесса.

    Свойство Значение Описание
    Важность Any Указывает уровень важности нужного сообщения электронной почты.
    Только с вложениями Да Получать только письма с вложениями.

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

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

    Свойство Значение Описание
    Фильтр темы Бизнес-аналитик 2 #423501 Текст для поиска в темах сообщений
  7. Сохраните результаты своих действий. На панели инструментов конструктора выберите Сохранить.

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

Проверка вложений

Теперь добавьте условие, которое выбирает только письма с вложениями.

  1. В разделе триггера выберите знак плюса (+), а затем нажмите кнопку "Добавить действие".

  2. В области "Добавление действия" в поле поиска введите условие.

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

  4. Переименуйте условие с помощью лучшего описания.

    1. В области сведений об условии замените имя условия по умолчанию следующим описанием: если в сообщении электронной почты есть вложения и фраза ключевого субъекта.
  5. Создайте условие, которое проверяет наличие сообщений электронной почты с вложениями.

    1. В первой строке в списке операций " выберите в левом поле. В появившемся списке динамического содержимого выберите свойство С вложением.

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

    2. В среднем поле укажите для оператора значение равно.

    3. В правом поле введите true, которое является значением для сравнения со значением свойства Has Attachment , выходным результатом которого является триггер. Если оба значения равны, сообщение имеет по крайней мере одно вложение, передается условие и рабочий процесс продолжает работу.

      Снимок экрана: полное условие.

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

    "Condition": {
       "actions": { <actions-to-run-when-condition-passes> },
       "expression": {
          "and": [ {
             "equals": [
                "@triggerBody()?['HasAttachment']",
                  "true"
             ]
          } ]
       },
       "runAfter": {},
       "type": "If"
    }
    
  6. Сохраните результаты своих действий.

Проверка условия

  1. На панели инструментов конструктора выберите запуск триггера>.

    Этот шаг вручную запускает и запускает рабочий процесс, но ничего не произойдет, пока тестовое сообщение электронной почты не будет доставлено в папку "Входящие".

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

    • Тема электронного сообщения содержит текст, который указан в триггере субъекта фильтра: Business Analyst 2 #423501

    • Сообщение электронной почты имеет одно вложение. Теперь создайте один пустой текстовый файл и вложите его в электронное сообщение.

    При поступлении сообщения электронной почты рабочий процесс проверяет наличие вложений и указанного текста темы. Если условие проходит, триггер запускается и вызывает создание экземпляра Azure Logic Apps и запуск экземпляра рабочего процесса.

  3. Чтобы проверить, запущен ли триггер и рабочий процесс успешно запущен, в меню приложения логики выберите "Обзор".

    • Чтобы просмотреть успешно запущенные триггеры, выберите журнал триггеров.

    • Чтобы просмотреть рабочие процессы успешного выполнения, выберите журнал запусков.

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

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

Примечание.

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

Вызов RemoveHTMLFunction

Этот шаг добавляет ранее созданную функцию Azure в рабочий процесс и передает содержимое текста электронной почты из триггера электронной почты в функцию.

  1. В меню приложения логики выберите конструктор приложений логики. В ветви True выберите "Добавить действие".

  2. Под полем поиска Выберите операцию щелкните Встроенные. В поле поиска введите функции Azure и выберите действие с именем "Выбрать функцию Azure".

    Снимок экрана: выбранное действие с именем Выбор функции Azure.

  3. Выберите ранее созданное приложение-функцию, которое является CleanTextFunctionApp в этом примере:

  4. Теперь выберите функцию, которая называется RemoveHTMLFunction в этом примере.

  5. Переименуйте фигуру функции со следующим описанием: вызов RemoveHTMLFunction для очистки текста электронной почты

  6. Теперь укажите входные данные для обработки с помощью функции.

    1. В разделе Текст запроса введите этот текст с пробелом в конце:

      { "emailBody":

      Пока вы будете работать с этими входными данными на следующих шагах, будет отображаться сообщение об ошибке о недопустимом формате JSON. При тестировании этой функции ранее входные данные, указанные для данной функции, использовали JavaScript Object Notation (JSON). Таким образом, текст запроса должен использовать тот же формат.

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

    2. Из списка динамического содержимого в разделе Когда приходит новое электронное письмо выберите свойство Текст. После этого свойства не забудьте добавить закрывающую фигурную скобку (}).

      Указание текста запроса для функции

    После завершения входные данные функции выглядят следующим образом:

    Окончательный текст запроса для передачи в функцию

  7. Сохраните результаты своих действий.

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

Создание большого двоичного объекта для текста электронного сообщения

  1. В конструкторе в блоке True в функции Azure выберите "Добавить действие".

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

    Снимок экрана: действие Хранилище BLOB-объектов Azure с выбранным именем Create BLOB-объект.

  3. Укажите сведения о подключении для учетной записи хранения и нажмите кнопку "Создать", например:

    Свойство Значение Описание
    Имя подключения AttachmentStorageConnection Описательное имя для подключения
    Тип проверки подлинности Ключ доступа Тип проверки подлинности, используемый для подключения
    имя или конечная точка учетной записи служба хранилища Azure <storage-account-name> Имя ранее созданной учетной записи хранения, которая является вложениямиtorageacct для этого примера
    ключ доступа к учетной записи служба хранилища Azure <ключ доступа к учетной записи хранения> Ключ доступа для ранее созданной учетной записи хранения
  4. Переименуйте действие "Создать большой двоичный объект" со следующим описанием: создание большого двоичного объекта для текста электронной почты

  5. В действии "Создание большого двоичного объекта " укажите следующие сведения:

    Свойство Значение Описание
    Имя учетной записи хранения или конечная точка BLOB-объектов Использование параметров подключения (<имя> учетной записи хранения) Выберите учетную запись хранения, которая является вложениямиtorageacct для этого примера.
    Путь к папке <path-and-container-name> Путь и имя контейнера, созданные ранее. В этом примере выберите значок папки и выберите контейнер вложений .
    Имя BLOB-объекта <имя отправителя> В этом примере в качестве имени большого двоичного объекта используйте имя отправителя. Выберите внутри этого поля, чтобы появится динамический список содержимого. В разделе "Когда появится новое сообщение электронной почты", выберите поле "Из".
    Содержимое BLOB-объекта <content-for-blob> В этом примере используйте текст электронного сообщения без HTML в качестве содержимого большого двоичного объекта. Выберите внутри этого поля, чтобы появится динамический список содержимого. В разделе "Удаление вызовов RemoveHTMLFunction" для очистки текста электронной почты выберите "Текст".

    На следующем рисунке показаны поля, которые нужно выбрать для действия "Создать большой двоичный объект ".

    Снимок экрана: сведения о тексте электронной почты без HTML в действии

    После завершения действия действие выглядит следующим образом:

    Снимок экрана: примеры входных данных электронной почты без HTML для готового действия создания BLOB-объектов.

  6. Сохраните результаты своих действий.

Проверка обработки вложений

  1. На панели инструментов конструктора выберите запуск триггера>.

    Этот шаг вручную запускает и запускает рабочий процесс, но ничего не произойдет, пока тестовое сообщение электронной почты не будет доставлено в папку "Входящие".

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

    • Тема электронного сообщения содержит текст, который указан в триггере субъекта фильтра: Business Analyst 2 #423501

    • Ваше электронное сообщение содержит по крайней мере одно вложение. Теперь создайте один пустой текстовый файл и вложите его в электронное сообщение.

    • Ваше электронное сообщение имеет тестовое содержимое в тексте, например: Testing my logic app workflow

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

  3. Убедитесь, что рабочий процесс сохранил сообщение электронной почты в правильном контейнере хранилища.

    1. В Обозреватель службы хранилища разверните вложения эмулятора и присоединенных> учетных>записей хранения attachmentstorageacct (Key)>BLOB-объектов.>

    2. Проверьте контейнер электронных сообщений attachments.

      На этом этапе в контейнере отображается только сообщение электронной почты, так как рабочий процесс еще не обработал вложения.

      Снимок экрана: Обозреватель службы хранилища только сохраненное сообщение электронной почты.

    3. Затем удалите электронные сообщения в Обозревателе службы хранилища.

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

Затем добавьте цикл "Для каждого цикла", чтобы обработать все вложения электронной почты.

Обработка вложений

Чтобы обработать каждое вложение в сообщении электронной почты, добавьте цикл для каждого цикла в рабочий процесс.

  1. Вернитесь в конструктор. В разделе "Создание большого двоичного объекта для текста электронной почты" выберите " Добавить действие".

  2. Под полем поиска Выберите операцию щелкните Встроенные. В поле поиска введите для каждого и выберите действие с именем "Для каждого".

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

  3. Переименуйте цикл со следующим описанием: для каждого вложения электронной почты

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

    Снимок экрана: список динамического содержимого с выбранным полем с именем Вложения.

    Поле Вложения передает массив, содержащий все вложения, включенные в электронные сообщения. Цикл For each повторяет действия для каждого элемента, который передается в массив.

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

Добавьте действие, которое сохраняет каждое вложение в виде большого двоичного объекта в контейнере хранилища attachments.

Создание большого двоичного объекта для каждого вложения

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

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

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

    Снимок экрана: выбранное действие с именем Create BLOB-объект.

  3. Переименуйте действие Create BLOB-объект 2 со следующим описанием: создание большого двоичного объекта для каждого вложения электронной почты

  4. В разделе "Создание большого двоичного объекта для каждого действия вложения электронной почты" укажите следующие сведения:

    Свойство Значение Описание
    Имя учетной записи хранения или конечная точка BLOB-объектов Использование параметров подключения (<имя> учетной записи хранения) Выберите учетную запись хранения, которая является вложениямиtorageacct для этого примера.
    Путь к папке <path-and-container-name> Путь и имя контейнера, созданные ранее. В этом примере выберите значок папки и выберите контейнер вложений .
    Имя BLOB-объекта <имя вложения> В этом примере в качестве имени большого двоичного объекта используйте имя вложения. Выберите внутри этого поля, чтобы появится динамический список содержимого. В разделе "При поступлении нового сообщения электронной почты" выберите поле "Имя".
    Содержимое BLOB-объекта <email-content> В этом примере используйте содержимое электронной почты в качестве содержимого большого двоичного объекта. Выберите внутри этого поля, чтобы появится динамический список содержимого. В разделе " Когда поступает новое сообщение электронной почты ", выберите "Содержимое".

    Снимок экрана: сведения о вложении в действии создания BLOB-объектов.

    После завершения действия действие выглядит следующим образом:

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

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

Проверка обработки вложений

  1. На панели инструментов конструктора выберите запуск триггера>.

    Этот шаг вручную запускает и запускает рабочий процесс, но ничего не произойдет, пока тестовое сообщение электронной почты не будет доставлено в папку "Входящие".

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

    • Тема электронного сообщения содержит текст, который указан в свойстве триггера Субъект фильтра: Business Analyst 2 #423501

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

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

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

    1. В Обозреватель службы хранилища разверните вложения эмулятора и присоединенных> учетных>записей хранения attachmentstorageacct (Key)>BLOB-объектов.>

    2. Проверьте электронное сообщение и вложения в контейнере attachments.

      Снимок экрана: Обозреватель службы хранилища и сохраненные сообщения электронной почты и вложения.

    3. Затем удалите электронное сообщение и вложения в Обозревателе службы хранилища.

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

Отправка уведомлений по электронной почте

  1. Вернитесь в конструктор. В ветви True свернуть цикл вложения для каждой электронной почты.

  2. В цикле выберите "Добавить действие".

    Снимок экрана: свернутый для каждого цикла. В цикле выбран параметр

  3. В поле "Выбор операции" выберите "Стандартный". В поле поиска введите отправка сообщения.

  4. В списке действий выберите действие отправки электронной почты для поставщика электронной почты. Чтобы отфильтровать список действий на основе определенного соединителя, сначала можно выбрать соединитель.

    В этом примере продолжается соединитель Office 365 Outlook, который работает только с рабочей или учебной учетной записью Azure. Для личных учетных записей Майкрософт выберите соединитель Outlook.com.

    Снимок экрана: выбрано действие отправки электронной почты Office 365 Outlook.

  5. Если вы запрашиваете учетные данные, войдите в учетную запись электронной почты, чтобы Azure Logic Apps создало подключение к учетной записи электронной почты.

  6. Переименуйте действие "Отправить сообщение электронной почты" со следующим описанием: отправка сообщения электронной почты для проверки

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

    • Чтобы добавить пустые строки в поле редактирования, нажмите Shift + ВВОД.
    • Если требуемое поле не удается найти в списке динамического содержимого, выберите Еще рядом с полем Когда приходит новое электронное письмо.
    Свойство Значение Описание
    Кому <электронный адрес получателя> Для тестировании можете использовать свой собственный адрес.
    Тема ASAP - Review applicant for position: Тема Тема электронного письма, которую необходимо указать. Щелкните это поле, введите текст примера и из списка динамического содержимого выберите в разделе Когда приходит новое электронное письмо поле Тема.
    Текст Please review new applicant:

    Applicant name: От

    Application file location: Путь

    Application email content: Текст

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

    — Поле "Из" в разделе "При поступлении
    нового сообщения" — поле "Путь" в разделе "Создание большого двоичного объекта для текста
    электронной почты" — поле "Текст" в разделе "Вызов RemoveHTMLFunction" для очистки текста электронной почты

    Снимок экрана: пример электронной почты для отправки.

    Примечание.

    Если выбрать поле, содержащее массив, например поле "Содержимое ", которое является массивом, содержащим вложения, конструктор автоматически добавляет цикл для каждого цикла вокруг действия, ссылающегося на это поле. Таким образом рабочий процесс может выполнить это действие для каждого элемента массива. Чтобы удалить цикл, удалите поле массива, переместите ссылочное действие за пределы цикла, нажмите кнопку с многоточием (...) на панели заголовка цикла и щелкните Удалить.

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

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

Снимок экрана: завершенный рабочий процесс.

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

  1. Отправьте электронное сообщение, которое соответствует этому критерию:

    • Тема электронного сообщения содержит текст, который указан в свойстве триггера Субъект фильтра: Business Analyst 2 #423501

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

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

      
      Name: Jamal Hartnett
      
      Street address: 12345 Anywhere Road
      
      City: Any Town
      
      State or Country: Any State
      
      Postal code: 00000
      
      Email address: jamhartnett@outlook.com
      
      Phone number: 000-000-0000
      
      Position: Business Analyst 2 #423501
      
      Technical skills: Dynamics CRM, MySQL, Microsoft SQL Server, JavaScript, Perl, Power BI, Tableau, Microsoft Office: Excel, Visio, Word, PowerPoint, SharePoint, and Outlook
      
      Professional skills: Data, process, workflow, statistics, risk analysis, modeling; technical writing, expert communicator and presenter, logical and analytical thinker, team builder, mediator, negotiator, self-starter, self-managing  
      
      Certifications: Six Sigma Green Belt, Lean Project Management
      
      Language skills: English, Mandarin, Spanish
      
      Education: Master of Business Administration
      
  2. Запустите рабочий процесс. В случае успешного выполнения рабочий процесс отправляет сообщение электронной почты, которое выглядит следующим образом:

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

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

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

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

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

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

  2. В списке Группы ресурсов выберите группу ресурсов для этого учебника.

  3. На панели инструментов "Обзор" группы ресурсов выберите "Удалить группу ресурсов".

  4. Когда отобразится панель подтверждения, введите имя группы ресурсов и выберите Удалить.

Следующие шаги

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