你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用观察者任务跟踪更新的文件

Azure 自动化通过 PowerShell Runbook 使用观察程序任务查找事件并触发操作。 观察任务包含两个部分:监视器和操作。 观察程序 runbook 以观察程序任务中定义的间隔时间并将数据输出到操作 runbook。

注释

由世纪互联运营的 Microsoft Azure 不支持观察程序任务。

重要

自 2020 年 5 月起,建议和支持使用 Azure 逻辑应用来监视事件、计划定期任务和触发操作。 请参阅 使用 Azure 逻辑应用计划和运行定期自动化任务、流程和工作流

本文逐步讲解如何创建观察程序任务,以监视何时将新文件添加到目录。 你将学会如何:

  • 导入监视器运行手册
  • 创建自动化变量
  • 创建行动手册
  • 创建监视任务
  • 触发观察程序
  • 检查输出

先决条件

若要完成本文,需要满足以下条件:

导入监视器运行手册

本文使用名为 Watcher runbook 的观察程序 runbook 在目录中查找新文件,以查找目录中的新文件。 该观察程序 runbook 检索文件夹中的文件的最后已知写入时间,并查找比该水印更新的任何文件。

可以使用以下步骤将此 runbook 从门户导入到自动化帐户中。

  1. 登录到 Azure 门户
  2. 搜索并选择 自动化帐户
  3. “自动化帐户 ”页上,从列表中选择自动化帐户的名称。
  4. 在左窗格中,选择进程自动化下的 Runbook 库
  5. 确保在“源”下拉列表中选择 GitHub
  6. 搜索“Watcher runbook”。
  7. 从目录中选择“Watcher runbook that looks for new files in a directory”,然后在详细信息页上选择“导入”。
  8. 为 Runbook 命名并选择性地提供说明,然后单击“ 确定 ”将 Runbook 导入自动化帐户。 窗口右上角的窗格中应会显示 “导入成功 ”消息。
  9. 从左侧窗格中选择“Runbooks”时,导入的 runbook 会显示在列表中你指定的名称下。
  10. 单击 Runbook,然后在 Runbook 详细信息页上,选择 “编辑 ”,然后单击“ 发布”。 收到提示时,单击“是”以发布该 runbook

还可以从 Azure Automation GitHub 组织下载运行手册。

  1. 导航到“Azure 自动化 GitHub 组织”页,了解 Watch-NewFile.ps1
  2. 若要从 GitHub 下载 Runbook,请从页面右侧选择 “代码 ”,然后选择“ 下载 ZIP ”以在 zip 文件中下载整个代码。
  3. 提取内容并导入 runbook

创建自动化变量

使用一个自动化变量来存储前面的 runbook 从每个文件读取和存储的时间戳。

  1. “共享资源”下选择“变量”,然后单击“+ 添加变量”。

  2. 输入 Watch-NewFileTimestamp 以获取名称。

  3. 为类型选择 DateTime 。 它默认为当前日期和时间。

    展示如何新建变量边栏选项卡的屏幕截图。

  4. 单击“ 创建 ”以创建自动化变量。

创建操作 runbook

在观察程序任务中,操作 runbook 用来对从观察程序 runbook 传递给它的数据执行操作。 需要从 Azure 门户或 Azure 自动化 GitHub 组织导入预定义操作 runbook。

您可以通过 Azure 门户将此流程文档导入到您的自动化帐户中:

  1. 登录到 Azure 门户
  2. 搜索并选择 自动化帐户
  3. “自动化帐户 ”页上,从列表中选择自动化帐户的名称。
  4. 在左窗格中,选择进程自动化下的 Runbook 库
  5. 确保在“源”下拉列表中选择 GitHub
  6. 搜索 观察程序操作,选择 处理观察程序运行手册触发事件的观察程序操作,然后单击导入
  7. (可选)在导入页上更改 Runbook 的名称,然后单击“ 确定 ”以导入 Runbook。 应在浏览器右上角的通知窗格中看到 “导入成功 ”消息。
  8. 转到您的自动化帐户页面,然后单击在左侧的Runbooks。 新 runbook 应在上一步中提供的名称下列出。 单击 Runbook,然后在 Runbook 详细信息页上,选择 “编辑 ”,然后单击“ 发布”。 收到提示时,单击“是”以发布该 runbook

通过从 Azure 自动化 GitHub 组织下载操作 runbook 来创建操作 runbook:

  1. 导航到 Azure 自动化 GitHub 组织的 Process-NewFile.ps1 页面。
  2. 若要从 GitHub 下载 Runbook,请从页面右侧选择 “代码 ”,然后选择“ 下载 ZIP ”以在 zip 文件中下载整个代码。
  3. 提取内容并导入 runbook

创建监视任务

在此步骤中,你将配置引用在前面几节中定义的观察程序和操作 runbook 的观察程序任务。

  1. 导航到自动化帐户,然后在“流程自动化”下选择观察程序任务

  2. 选择“观察程序任务”页,然后单击“ + 添加观察程序任务”。

  3. 输入 WatchMyFolder 作为名称。

  4. 选择配置观察程序,然后选择Watch-NewFile运行簿。

  5. 输入参数的以下值:

    • FOLDERPATH - 混合 Runbook 工作节点上的一个文件夹,用于创建新文件,例如 d:\examplefiles
    • EXTENSION - 配置的扩展。 将字段留空以处理所有文件扩展名。
    • RECURSE - 递归操作。 将此值保留为默认值。
    • 运行设置 - 用于运行 Runbook 的设置。 选择混合工作者。
  6. 单击确定,然后单击选择以返回到监控页面。

  7. 选择“配置操作”,然后选择“Process-NewFile”runbook

  8. 输入参数的以下值:

    • EVENTDATA - 事件数据。 留空。 从观察程序 runbook 传入数据。
    • 运行设置 - 用于运行 Runbook 的设置。 当此 runbook 在 Azure 自动化中运行时保留为 Azure。
  9. 单击确定,然后选择以返回监视器页面。

  10. 单击确定以创建监视任务。

触发观察程序

您必须按如下所述运行测试,以确保监控任务按预期运作。

  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 作业,请单击“查看观察程序操作作业”。 可以选择每个作业以查看作业的详细信息。

    Azure 门户中监视器操作作业的屏幕截图。

在找到新文件时,可以在以下示例中看到预期输出:

Message is Process new file...

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

后续步骤

若要详细了解如何创作自己的 Runbook,请参阅 “创建 PowerShell Runbook”。