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


Отслеживание обновленных файлов с помощью задачи наблюдателя

Служба автоматизации Azure использует задачи наблюдателя для слежения за событиями и активации действий с помощью модулей runbook PowerShell. Задача наблюдателя состоит из двух частей: наблюдателя и действия. Модуль runbook наблюдателя запускается с интервалом, определенным в задаче наблюдателя, и выводит данные в модуль runbook действия.

Примечание.

Задачи наблюдателя не поддерживаются в Microsoft Azure, работающей в 21Vianet.

Важно!

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

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

  • Импорт runbook службы "Наблюдатель"
  • Создание переменной службы автоматизации
  • Создание runbook действия
  • Создание задачи службы "Наблюдатель"
  • Активация службы "Наблюдатель"
  • Изучение выходных данных

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

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

Импорт runbook службы "Наблюдатель"

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

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

  1. Войдите на портал Azure.
  2. Найдите и выберите раздел Учетные записи службы автоматизации.
  3. На странице Учетные записи службы автоматизации выберите имя необходимой учетной записи из списка.
  4. Выберите на панели слева Коллекция модулей runbook в разделе Автоматизация процессов.
  5. Убедитесь, что в раскрывающемся списке источник выбрано GitHub.
  6. Найдите пункт"Watcher runbook" (runbook службы "Наблюдатель").
  7. Выберите Модуль runbook наблюдателя, который ищет новые файлы в каталоге и щелкните Импорт на странице сведений.
  8. Укажите имя и, если требуется, описание модуля runbook, затем щелкните ОК, чтобы импортировать модуль runbook в учетную запись службы автоматизации. В верхней правой части окна появится сообщение Импорт успешно выполнен.
  9. Импортированный runbook появится в списке под именем, которое вы присвоили при выборе модулей runbook в левой области.
  10. Щелкните модуль runbook, на странице сведений выберите Изменить, а затем нажмите кнопку Опубликовать. При появлении соответствующего запроса щелкните Да, чтобы опубликовать модуль runbook.

Вы также можете скачать модуль runbook из Организации GitHub службы автоматизации Azure.

  1. Откройте раздел службы автоматизации Azure на GitHub, где доступен файл Watch-NewFile.ps1.
  2. Чтобы скачать модуль runbook с сайта GitHub, выберите Code в правой части страницы, а затем щелкните скачать ZIP-файл, чтобы скачать весь код в ZIP-файле.
  3. Извлеките содержимое и импортируйте модуль runbook.

Создание переменной службы автоматизации

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

  1. Выберите Переменные в разделе Общие ресурсы, затем щелкните + Добавить переменную.

  2. Введите имя Watch-NewFileTimestamp.

  3. Выберите тип DateTime (Дата и время). По умолчанию он будет иметь текущую дату и время.

    Screenshot of creating a new variable blade.

  4. Щелкните Создать, чтобы создать переменную службы автоматизации.

Создание runbook действия

Runbook действия используется в задаче службы "Наблюдатель" для работы с данными, передаваемыми в нее из runbook службы "Наблюдатель". Необходимо импортировать предварительно заданный модуль runbook действия из портала Azure, либо в организации GitHub службы автоматизации Azure.

Вы также можете импортировать этот модуль runbook в учетную запись службы автоматизации на портале Azure.

  1. Войдите на портал Azure.
  2. Найдите и выберите раздел Учетные записи службы автоматизации.
  3. На странице Учетные записи службы автоматизации выберите имя необходимой учетной записи из списка.
  4. Выберите на панели слева Коллекция модулей runbook в разделе Автоматизация процессов.
  5. Убедитесь, что в раскрывающемся списке источник выбрано GitHub.
  6. Найдите пункт Watcher action (Действие наблюдателя), выберите Watcher action that processes events triggered by a watcher runbook (Действие наблюдателя, обрабатывающее события, активированные с помощью runbook наблюдателя) и щелкните Импорт.
  7. Также для импорта модуля runbook вы можете изменить его имя на странице импорта, а затем нажать кнопку ОК. На панели уведомлений в верхней правой части окна обозревателя появится сообщение Импорт успешно выполнен.
  8. Перейдите на страницу учетной записи службы автоматизации и щелкните модули runbook слева. Новый модуль runbook должен быть указан под именем, присвоенным на предыдущем шаге. Щелкните модуль runbook, на странице сведений выберите Изменить, а затем нажмите кнопку Опубликовать. При появлении соответствующего запроса щелкните Да, чтобы опубликовать модуль runbook.

Чтобы создать модуль runbook действия, скачайте его из организации GitHub в службе автоматизации Azure, как указано ниже.

  1. Перейдите на страницу организации GitHub службы автоматизации Azure для файла Watch-NewFile.ps1.
  2. Чтобы скачать модуль runbook с сайта GitHub, выберите Code в правой части страницы, а затем щелкните скачать ZIP-файл, чтобы скачать весь код в ZIP-файле.
  3. Извлеките содержимое и импортируйте модуль runbook.

Создание задачи службы "Наблюдатель"

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

  1. Перейдите к своей учетной записи службы автоматизации и в категории Автоматизация процессов выберите Задачи наблюдателя.

  2. Откройте страницу "Задачи наблюдателя" и щелкните + Добавить задачу наблюдателя.

  3. Введите имя WatchMyFolder.

  4. Щелкните Настройка наблюдателя и выберите runbook Watch-NewFile.

  5. Введите следующие значения параметров.

    • FOLDERPATH (Путь к папке). Папка в гибридной рабочей роли Runbook, где создаются файлы, например d:\examplefiles.
    • EXTENSION (Расширение). Расширение для конфигурации. Оставьте поле пустым, чтобы обрабатывались все расширения файлов.
    • RECURSE (Рекурсия). Рекурсивная операция. Оставьте это значение в качестве значения по умолчанию.
    • RUN SETTINGS (Параметры запуска). Настройка для запуска модуля runbook. Выберите гибридную рабочую роль.
  6. Щелкните ОК, а затем Выбрать, чтобы вернуться на страницу "Наблюдатель".

  7. Щелкните Настройка действия и выберите runbook с именем Process-NewFile.

  8. Введите следующие значения параметров.

    • EVENTDATA (Данные событий). Не указывайте. Данные передаются из runbook наблюдателя.
    • RUN SETTINGS (Параметры запуска). Настройка для запуска модуля runbook. Оставьте значение "Azure", так как этот модуль runbook выполняется в службе автоматизации Azure.
  9. Щелкните ОК, а затем Выбрать, чтобы вернуться на страницу "Наблюдатель".

  10. Нажмите кнопку ОК, чтобы создать задачу службы "Наблюдатель".

    Screenshot of configuring watcher action in the Azure portal.

Активация службы "Наблюдатель"

Выполните описанный ниже тест, чтобы убедиться, что задача наблюдателя работает должным образом.

  1. Установите удаленное подключение к гибридной рабочей роли Runbook.
  2. Откройте PowerShell и создайте тестовый файл в папке.
New-Item -Name ExampleFile1.txt

В следующем примере показаны ожидаемые выходные данные.

    Directory: D:\examplefiles


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       12/11/2017   9:05 PM              0 ExampleFile1.txt

Изучение выходных данных

  1. Перейдите к своей учетной записи службы автоматизации и в категории Автоматизация процессов выберите Задачи наблюдателя.

  2. Щелкните задачу наблюдателя с именем WatchMyFolder.

  3. Щелкните Просмотреть потоки наблюдателей в разделе Потоки, чтобы убедиться, что наблюдатель обнаружил новый файл и запустил модуль runbook действия.

  4. Щелкните Просмотреть задания действий наблюдателя, чтобы просмотреть задания модуля runbook действия. Вы можете выбрать любое задание, чтобы просмотреть сведения о нем.

    Screenshot of a watcher action jobs from the Azure portal.

Ожидаемые выходные данные при обнаружении нового файла можно увидеть в следующем примере.

Message is Process new file...

Passed in data is @{FileName=D:\examplefiles\ExampleFile1.txt; Length=0}

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

Дополнительные сведения о создании собственного модуля runbook см. в статье Создание модуля runbook в PowerShell.