Отслеживание обновленных файлов с помощью задачи наблюдателя
Служба автоматизации Azure использует задачи наблюдателя для слежения за событиями и активации действий с помощью модулей runbook PowerShell. Задача наблюдателя состоит из двух частей: наблюдателя и действия. Модуль runbook наблюдателя запускается с интервалом, определенным в задаче наблюдателя, и выводит данные в модуль runbook действия.
Примечание.
Задачи наблюдателя не поддерживаются в Microsoft Azure, работающей в 21Vianet.
Важно!
Начиная с мая 2020 года слежение за событиями, планирование повторяющихся задач и запуск действий рекомендуется перенести на платформу Azure Logic Apps. См. статью Планирование и выполнение повторяющихся автоматизированных задач, процессов и рабочих процессов с помощью Azure Logic Apps.
В этой статье пошагово описывается создание задачи службы "Наблюдатель", которая отслеживает добавление новых файлов в каталог. Узнайте следующие темы:
- Импорт runbook службы "Наблюдатель"
- Создание переменной службы автоматизации
- Создание runbook действия
- Создание задачи службы "Наблюдатель"
- Активация службы "Наблюдатель"
- Изучение выходных данных
Необходимые компоненты
Ниже перечислены необходимые условия для выполнения инструкций из этой статьи.
- Подписка Azure. Если у вас ее нет, активируйте преимущества для подписчиков MSDN или зарегистрируйте бесплатную учетную запись.
- Учетная запись службы автоматизации для хранения runbook наблюдателя, runbook действия и задачи наблюдателя.
- Гибридная рабочая роль runbook, в которой выполняется задача наблюдателя.
- Модули runbook PowerShell. Модули Runbook рабочего процесса PowerShell и графические модули Runbook не поддерживаются задачами наблюдателя.
Импорт runbook службы "Наблюдатель"
В этой статье используется runbook наблюдателя, именуемый модулем runbook наблюдателя, который ищет новые файлы в каталоге для поиска новых файлов в каталоге. Runbook службы "Наблюдатель" получает время последней записи в файлы в папке и ищет файлы, для которых это значение не превышает заданный предел.
Вы можете импортировать этот модуль runbook в учетную запись службы автоматизации на портале, выполнив следующие действия.
- Войдите на портал Azure.
- Найдите и выберите раздел Учетные записи службы автоматизации.
- На странице Учетные записи службы автоматизации выберите имя необходимой учетной записи из списка.
- Выберите на панели слева Коллекция модулей runbook в разделе Автоматизация процессов.
- Убедитесь, что в раскрывающемся списке источник выбрано GitHub.
- Найдите пункт"Watcher runbook" (runbook службы "Наблюдатель").
- Выберите Модуль runbook наблюдателя, который ищет новые файлы в каталоге и щелкните Импорт на странице сведений.
- Укажите имя и, если требуется, описание модуля runbook, затем щелкните ОК, чтобы импортировать модуль runbook в учетную запись службы автоматизации. В верхней правой части окна появится сообщение Импорт успешно выполнен.
- Импортированный runbook появится в списке под именем, которое вы присвоили при выборе модулей runbook в левой области.
- Щелкните модуль runbook, на странице сведений выберите Изменить, а затем нажмите кнопку Опубликовать. При появлении соответствующего запроса щелкните Да, чтобы опубликовать модуль runbook.
Вы также можете скачать модуль runbook из Организации GitHub службы автоматизации Azure.
- Откройте раздел службы автоматизации Azure на GitHub, где доступен файл Watch-NewFile.ps1.
- Чтобы скачать модуль runbook с сайта GitHub, выберите Code в правой части страницы, а затем щелкните скачать ZIP-файл, чтобы скачать весь код в ZIP-файле.
- Извлеките содержимое и импортируйте модуль runbook.
Создание переменной службы автоматизации
Для хранения меток времени, которые указанный выше runbook считывает из каждого файла и сохраняет, используется переменная службы автоматизации.
Выберите Переменные в разделе Общие ресурсы, затем щелкните + Добавить переменную.
Введите имя Watch-NewFileTimestamp.
Выберите тип DateTime (Дата и время). По умолчанию он будет иметь текущую дату и время.
Щелкните Создать, чтобы создать переменную службы автоматизации.
Создание runbook действия
Runbook действия используется в задаче службы "Наблюдатель" для работы с данными, передаваемыми в нее из runbook службы "Наблюдатель". Необходимо импортировать предварительно заданный модуль runbook действия из портала Azure, либо в организации GitHub службы автоматизации Azure.
Вы также можете импортировать этот модуль runbook в учетную запись службы автоматизации на портале Azure.
- Войдите на портал Azure.
- Найдите и выберите раздел Учетные записи службы автоматизации.
- На странице Учетные записи службы автоматизации выберите имя необходимой учетной записи из списка.
- Выберите на панели слева Коллекция модулей runbook в разделе Автоматизация процессов.
- Убедитесь, что в раскрывающемся списке источник выбрано GitHub.
- Найдите пункт Watcher action (Действие наблюдателя), выберите Watcher action that processes events triggered by a watcher runbook (Действие наблюдателя, обрабатывающее события, активированные с помощью runbook наблюдателя) и щелкните Импорт.
- Также для импорта модуля runbook вы можете изменить его имя на странице импорта, а затем нажать кнопку ОК. На панели уведомлений в верхней правой части окна обозревателя появится сообщение Импорт успешно выполнен.
- Перейдите на страницу учетной записи службы автоматизации и щелкните модули runbook слева. Новый модуль runbook должен быть указан под именем, присвоенным на предыдущем шаге. Щелкните модуль runbook, на странице сведений выберите Изменить, а затем нажмите кнопку Опубликовать. При появлении соответствующего запроса щелкните Да, чтобы опубликовать модуль runbook.
Чтобы создать модуль runbook действия, скачайте его из организации GitHub в службе автоматизации Azure, как указано ниже.
- Перейдите на страницу организации GitHub службы автоматизации Azure для файла Watch-NewFile.ps1.
- Чтобы скачать модуль runbook с сайта GitHub, выберите Code в правой части страницы, а затем щелкните скачать ZIP-файл, чтобы скачать весь код в ZIP-файле.
- Извлеките содержимое и импортируйте модуль runbook.
Создание задачи службы "Наблюдатель"
На этом этапе настраивается задача наблюдателя, указывающая на модуль runbook наблюдателя и модуль runbook действия, определенные в предыдущих разделах.
Перейдите к своей учетной записи службы автоматизации и в категории Автоматизация процессов выберите Задачи наблюдателя.
Откройте страницу "Задачи наблюдателя" и щелкните + Добавить задачу наблюдателя.
Введите имя WatchMyFolder.
Щелкните Настройка наблюдателя и выберите runbook Watch-NewFile.
Введите следующие значения параметров.
- FOLDERPATH (Путь к папке). Папка в гибридной рабочей роли Runbook, где создаются файлы, например d:\examplefiles.
- EXTENSION (Расширение). Расширение для конфигурации. Оставьте поле пустым, чтобы обрабатывались все расширения файлов.
- RECURSE (Рекурсия). Рекурсивная операция. Оставьте это значение в качестве значения по умолчанию.
- RUN SETTINGS (Параметры запуска). Настройка для запуска модуля runbook. Выберите гибридную рабочую роль.
Щелкните ОК, а затем Выбрать, чтобы вернуться на страницу "Наблюдатель".
Щелкните Настройка действия и выберите runbook с именем Process-NewFile.
Введите следующие значения параметров.
- EVENTDATA (Данные событий). Не указывайте. Данные передаются из runbook наблюдателя.
- RUN SETTINGS (Параметры запуска). Настройка для запуска модуля runbook. Оставьте значение "Azure", так как этот модуль runbook выполняется в службе автоматизации Azure.
Щелкните ОК, а затем Выбрать, чтобы вернуться на страницу "Наблюдатель".
Нажмите кнопку ОК, чтобы создать задачу службы "Наблюдатель".
Активация службы "Наблюдатель"
Выполните описанный ниже тест, чтобы убедиться, что задача наблюдателя работает должным образом.
- Установите удаленное подключение к гибридной рабочей роли Runbook.
- Откройте PowerShell и создайте тестовый файл в папке.
New-Item -Name ExampleFile1.txt
В следующем примере показаны ожидаемые выходные данные.
Directory: D:\examplefiles
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 12/11/2017 9:05 PM 0 ExampleFile1.txt
Изучение выходных данных
Перейдите к своей учетной записи службы автоматизации и в категории Автоматизация процессов выберите Задачи наблюдателя.
Щелкните задачу наблюдателя с именем WatchMyFolder.
Щелкните Просмотреть потоки наблюдателей в разделе Потоки, чтобы убедиться, что наблюдатель обнаружил новый файл и запустил модуль runbook действия.
Щелкните Просмотреть задания действий наблюдателя, чтобы просмотреть задания модуля runbook действия. Вы можете выбрать любое задание, чтобы просмотреть сведения о нем.
Ожидаемые выходные данные при обнаружении нового файла можно увидеть в следующем примере.
Message is Process new file...
Passed in data is @{FileName=D:\examplefiles\ExampleFile1.txt; Length=0}
Следующие шаги
Дополнительные сведения о создании собственного модуля runbook см. в статье Создание модуля runbook в PowerShell.