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


Копирование данных и отправка Уведомления по электронной почте при успешном выполнении и сбое

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этом руководстве создается конвейер фабрики данных, который демонстрирует некоторые функции потока управления. Этот конвейер просто копирует данные из контейнера в хранилище BLOB-объектов Azure в другой контейнер в той же учетной записи хранения. Если действие копирования завершается успешно, конвейер отправляет по электронной почте подробную информацию об успешной операции копирования (например, количество записанных данных). Если происходит сбой действия копирования, конвейер отправляет по электронной почте данные об ошибке копирования (например, текст сообщения об ошибке). В этом руководстве вы научитесь передавать параметры.

Общий обзор сценария: На схеме показано, что служба

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

  • Создали фабрику данных.
  • Создание связанной службы хранилища Azure.
  • Создание набора данных больших двоичных объектов Azure
  • Создание конвейера, содержащего действия копирования и веб-действие.
  • Отправка выходных данных действий для последующих действий.
  • Использование передачи параметров и системных переменных.
  • Запуск конвейера.
  • Мониторинг конвейера и выполнения действий.

В этом руководстве используется портал Azure. Вы можете использовать другие механизмы для взаимодействия с фабрикой данных Azure (см. раздел "Быстрое начало работы" в оглавлении).

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

  • Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
  • Учетная запись хранения Azure. В этом руководстве в качестве источника будет использоваться хранилище BLOB-объектов. Если у вас нет учетной записи хранения Azure, ознакомьтесь с разделом Создание учетной записи хранения.
  • База данных SQL Azure. Используйте базу данных как хранилище данных-приемник. Если у вас нет базы данных в службе "База данных SQL Azure", вы можете создать ее, выполнив инструкции из статьи Создание отдельной базы данных в Базе данных SQL Azure.

Создание таблицы больших двоичных объектов

  1. Запустите Блокнот. Скопируйте следующий текст и сохраните его в файл input.txt на диске.

    John,Doe
    Jane,Doe
    
  2. Используйте специальные инструменты, например Обозреватель службы хранилища Azure, чтобы выполнить следующие действия.

    1. Создайте контейнер adfv2branch.
    2. Создайте папку input в контейнере adfv2branch.
    3. Передайте файл input.txt в этот контейнер.

Создание конечных точек рабочего процесса электронной почты

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

Рабочий процесс успешной отправки сообщения электронной почты

Создайте рабочий процесс приложения логики потребления с именем CopySuccessEmail. Добавьте триггер запроса с именем "При получении HTTP-запроса" и добавьте действие Outlook Office 365 с именем "Отправить сообщение электронной почты". При появлении запроса войдите в свою учетную запись Office 365 Outlook.

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

Для триггера запроса заполните поле схемы JSON текста запроса следующим кодом JSON:

{
    "properties": {
        "dataFactoryName": {
            "type": "string"
        },
        "message": {
            "type": "string"
        },
        "pipelineName": {
            "type": "string"
        },
        "receiver": {
            "type": "string"
        }
    },
    "type": "object"
}

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

Снимок экрана конструктора рабочих процессов с триггером запроса.

Для действия отправки электронной почты настройте способ форматирования электронной почты, используя свойства, переданные в схеме JSON текста запроса. Рассмотрим пример:

Снимок экрана конструктора рабочих процессов с действием с именем

Сохраните рабочий процесс. Запишите URL-адрес запроса HTTP Post рабочего процесса успешной отправки электронной почты:

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Рабочий процесс сбоя отправки сообщения электронной почты

Выполните те же действия, чтобы создать другой рабочий процесс приложения логики с именем CopyFailEmail. В триггере запроса значение схемы JSON текста запроса совпадает. Измените формат сообщения электронной почты, например поле Subject, чтобы создать другое сообщение на случай сбоя. Рассмотрим пример:

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

Сохраните рабочий процесс. Запишите URL-адрес запроса HTTP Post для рабочего процесса успешной отправки электронной почты:

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Теперь у вас будут два URL-адреса рабочих процессов.

//Success Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

//Fail Request Url
https://prodxxx.eastus.logic.azure.com:443/workflows/000000/triggers/manual/paths/invoke?api-version=2016-10-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=000000

Создание фабрики данных

  1. Запустите веб-браузер Microsoft Edge или Google Chrome. Сейчас только эти браузеры поддерживают пользовательский интерфейс фабрики данных.

  2. Разверните меню в левом верхнем углу и выберите "Создать ресурс". Затем выберите фабрику >данных интеграции:>

    Снимок экрана:

    Снимок экрана: выбор фабрики данных в

  3. На странице Новая фабрика данных введите ADFTutorialDataFactory в поле Имя.

    Страница

    Имя фабрики данных Azure должно быть глобально уникальным. При возникновении указанной ниже ошибки измените имя фабрики данных (например, на ваше_имя_ADFTutorialDataFactory) и попробуйте создать фабрику данных снова. Ознакомьтесь со статьей Фабрика данных Azure — правила именования, чтобы узнать правила именования для артефактов службы "Фабрика данных".

    Имя фабрики данных ADFTutorialDataFactory недоступно.

  4. Выберите подписку Azure, в рамках которой вы хотите создать фабрику данных.

  5. Для группы ресурсов выполните одно из следующих действий.

  6. Укажите V2 при выборе версии.

  7. Укажите расположение фабрики данных. В раскрывающемся списке отображаются только поддерживаемые расположения. Хранилища данных (служба хранилища Azure, база данных SQL Azure и т. д.) и вычисления (HDInsight и т. д.), используемые фабрикой данных, могут располагаться в других регионах.

  8. Кроме того, установите флажок Закрепить на панели мониторинга.

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

  10. Когда завершится создание, откроется страница Фабрика данных, как показано на рисунке ниже.

    Показан снимок экрана домашней страницы фабрики данных.

  11. Нажмите кнопку "Открыть Фабрика данных Azure Studio", чтобы запустить пользовательский интерфейс Фабрика данных Azure на отдельной вкладке.

Создание конвейера

На этом этапе вы создадите конвейер с одним действием копирования и двумя веб-действиями. Для этого конвейера вам потребуются следующие компоненты:

  • параметры конвейера, определяющие доступ на основе наборов данных;
  • веб-действие для вызова рабочих процессов приложений логики, которые отправляют электронные письма при успешном завершении или при сбое;
  • связи между разными действиями (после успешного выполнения и сбоя);
  • использование выходных данных действия в качестве входных данных для последующего действия.
  1. На домашней странице пользовательского интерфейса Фабрики данных выберите элемент Orchestrate (Оркестрация).

    Показан снимок экрана домашней страницы фабрики данных с выделенной плиткой Orchestrate.

  2. В окне свойств для конвейера перейдите на вкладку Параметры и нажмите кнопку Создать, чтобы добавить три строковых параметра sourceBlobContainer, sinkBlobContainer и receiver.

    • Параметр sourceBlobContainer в конвейере используется в наборе данных для исходного BLOB-объекта.
    • sinkBlobContainer — параметр в конвейере, потребляемый набором данных больших двоичных объектов приемника
    • получатель — этот параметр используется двумя веб-действиями в конвейере, отправляющим сообщения об успешном выполнении или сбое получателю, адрес электронной почты которого указан этим параметром.

    Снимок экрана: меню

  3. На панели элементов "Действия" найдите действие "Копировать" и перетащите действие копирования в область конструктора конвейеров.

    Показан снимок экрана, демонстрирующий перетаскивание действия копирования в конструктор конвейеров.

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

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

  5. В окне "Создать набор данных" выберите вкладку Azure в верхней части экрана, а затем выберите Хранилище BLOB-объектов Azure и нажмите кнопку "Продолжить".

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

  6. В окне "Выбор формата" выберите "Разделители" и нажмите кнопку "Продолжить".

    Снимок экрана:

  7. Вы увидите новые свойства набора вкладок. Измените имя этого набора данных на SourceBlobDataset. Выберите раскрывающийся список связанной службы и нажмите кнопку +Создать, чтобы создать связанную службу в исходном наборе данных.

    Снимок экрана:

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

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

  9. В окне New Linked Service (Новая связанная служба) сделайте следующее:

    1. Введите AzureStorageLinkedService в поле имени.
    2. Выберите учетную запись хранения Azure в списке Имя учетной записи хранения.
    3. Нажмите кнопку Создать.
  10. В окне свойств "Задать", которое появится далее, выберите "Открыть этот набор данных", чтобы ввести параметризованное значение для имени файла.

    Снимок экрана: набор данных

  11. Введите @pipeline().parameters.sourceBlobContainer в качестве имени папки и emp.txt в качестве имени файла.

    Снимок экрана: параметры исходного набора данных.

  12. Вернитесь на вкладку конвейера (или щелкните конвейер в представлении дерева слева) и выберите действие копирования в конструкторе. Убедитесь, что для исходного набора данных выбран новый набор данных.

    Снимок экрана: исходный набор данных.

  13. В окне свойств перейдите на вкладку Приемник и нажмите кнопку + Создать в поле Sink Dataset (Целевой набор данных). В этом шаге вы создадите целевой набор данных, точно так же, как исходный набор данных ранее.

    Снимок экрана: кнопка нового набора данных приемника

  14. В окне "Новый набор данных" выберите Хранилище BLOB-объектов Azure и нажмите кнопку "Продолжить", а затем снова выберите "Разделители" в окне "Выбор формата" и нажмите кнопку "Продолжить".

  15. На странице свойств set для набора данных введите ПриемникBlobDataset для имени и выберите AzureStorageLinkedService для LinkedService.

  16. Разверните раздел "Дополнительно" страницы свойств и выберите "Открыть этот набор данных".

  17. На вкладке "Подключение к набору данных" измените путь к файлу. Введите @pipeline().parameters.sinkBlobContainer папку и @concat(pipeline().RunId, '.txt') имя файла. Это выражение использует идентификатор текущего запуска конвейера для создания имени файла. Списки поддерживаемых системных переменных и выражений вы найдете в статьях Системные переменные, поддерживаемые в фабрике данных Azure и Выражения и функции в фабрике данных Azure.

    Снимок экрана: параметры набора данных приемника.

  18. Вернитесь на вкладку конвейера в верхней части. Найдите веб-сайт в поле поиска и перетащите веб-действие в область конструктора конвейеров. Присвойте этому действию имя SendSuccessEmailActivity. Веб-действие разрешает выполнять вызов любой конечной точки REST. Дополнительные сведения о действиях см. в статье Веб-действие в фабрике данных Azure. Этот конвейер использует веб-действие для вызова рабочего процесса электронной почты Logic Apps.

    Показан снимок экрана, демонстрирующий, как перетащить первое веб-действие.

  19. Перейдите на вкладку Настройки из вкладки Общие и выполните следующие действия:

    1. В поле URL-адрес укажите URL-адрес для рабочего процесса приложений логики, который отправляет сообщение электронной почты об успешном выполнении.

    2. Выберите POST в поле Метод.

    3. Щелкните ссылку + Добавить заголовок в разделе Заголовки.

    4. Добавьте заголовок с именем Content-Type и значением application/json.

    5. Внесите следующий код JSON в поле Текст.

      {
          "message": "@{activity('Copy1').output.dataWritten}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

      Текст сообщения содержит следующие свойства.

      • Сообщение — передача значения @{activity('Copy1').output.dataWritten. Обращается к свойству предыдущего действия копирования и передает значение dataWritten. В случае сбоя передает выходные данные ошибки вместо @{activity('CopyBlobtoBlob').error.message.

      • Имя фабрики данных — передаваемое значение @{pipeline().DataFactory} — это системная переменная, позволяющая получить доступ к соответствующему имени фабрики данных. Список поддерживаемых системных переменных см. в статье Системные переменные, поддерживаемые фабрикой данных Azure.

      • Имя конвейера — передаваемое @{pipeline().Pipeline}значение . Это системная переменная, которая позволяет обращаться к соответствующему имени конвейера.

      • Получатель — передача значения "@pipeline().parameters.receiver"). Получает доступ к параметрам конвейера.

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

  20. Подключите действие копирования к веб-действиям, перетащив зеленую кнопку флажка рядом с действие Copy и удаляя веб-действие.

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

  21. Перетащите второе Веб-действие из панели элементов "Действия" в область конструктора конвейера и задайте для него ИмяSendFailureEmailActivity.

    Снимок экрана: имя второго веб-действия.

  22. Перейдите на вкладку Настройки и выполните здесь следующие действия:

    1. В поле URL-адрес укажите URL-адрес для рабочего процесса приложений логики, который отправляет сообщение электронной почты об ошибке при выполнении.

    2. Выберите POST в поле Метод.

    3. Щелкните ссылку + Добавить заголовок в разделе Заголовки.

    4. Добавьте заголовок с именем Content-Type и значением application/json.

    5. Внесите следующий код JSON в поле Текст.

      {
          "message": "@{activity('Copy1').error.message}",
          "dataFactoryName": "@{pipeline().DataFactory}",
          "pipelineName": "@{pipeline().Pipeline}",
          "receiver": "@pipeline().parameters.receiver"
      }
      

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

  23. Нажмите красную кнопку X справа от действия копирования в конструкторе конвейеров и перетащите ее в только что созданное действие SendFailureEmailActivity .

    Снимок экрана: как выбрать пункт

  24. Чтобы проверить работу конвейера, нажмите кнопку Проверка на панели инструментов. Закройте окно Pipeline Validation Output (Выходные данные проверки конвейера), нажав кнопку >>.

    Снимок экрана: кнопка

  25. Чтобы опубликовать сущности (наборы данных, конвейеры и т. д.) в службу фабрики данных, щелкните Опубликовать все. Дождитесь сообщения Опубликовано.

    Снимок экрана: кнопка

Запуск конвейера, который будет выполнен успешно

  1. Чтобы запустить конвейер, щелкните Триггер на панели инструментов, а затем Trigger Now (Запустить сейчас).

    Снимок экрана: кнопка

  2. В окне Запуск конвейера выполните следующие действия.

    1. Введите adftutorial/adfv2branch/input в качестве значения для параметра sourceBlobContainer.

    2. Введите adftutorial/adfv2branch/output в качестве значения для параметра sinkBlobContainer.

    3. Введите адрес электронной почты для получателя.

    4. Нажмите кнопку Готово.

      Параметры запуска конвейера

Мониторинг успешного выполнения конвейера

  1. Чтобы отследить выполнение конвейера, перейдите на вкладку Мониторинг слева. Вы увидите здесь запуск конвейера, который вы ранее выполнили вручную. Нажмите кнопку Обновить, чтобы обновить этот список.

    Успешный запуск конвейера

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

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

Запуск конвейера, который завершится сбоем

  1. Перейдите на вкладку Правка слева.

  2. Чтобы запустить конвейер, щелкните Триггер на панели инструментов, а затем Trigger Now (Запустить сейчас).

  3. В окне Запуск конвейера выполните следующие действия.

    1. Введите adftutorial/dummy/input в качестве значения для параметра sourceBlobContainer. Убедитесь, что папка dummy не существует в контейнере adftutorial.
    2. Введите adftutorial/dummy/output в качестве значения для параметра sinkBlobContainer.
    3. Введите адрес электронной почты для получателя.
    4. Нажмите кнопку Готово.

Отслеживание неудачного запуска конвейера.

  1. Чтобы отследить выполнение конвейера, перейдите на вкладку Мониторинг слева. Вы увидите здесь запуск конвейера, который вы ранее выполнили вручную. Нажмите кнопку Обновить, чтобы обновить этот список.

    Неудачный запуск конвейера

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

    Ошибка конвейера

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

    Выполнение действия

  4. Щелкните ссылку Ошибка в столбце Действия, чтобы просмотреть сведения об этой ошибке.

    Ошибка выполнения действия

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

  • Создали фабрику данных.
  • Создание связанной службы хранилища Azure.
  • Создание набора данных больших двоичных объектов Azure
  • Создание конвейера, содержащего действия копирования и веб-действие.
  • Отправка выходных данных действий для последующих действий.
  • Использование передачи параметров и системных переменных.
  • Запуск конвейера.
  • Мониторинг конвейера и выполнения действий.

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