你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过观察程序任务跟踪更新的文件
Azure 自动化通过 PowerShell Runbook 使用观察程序任务查找事件并触发操作。 观察程序任务包含两个部分:观察程序和操作。 观察程序 runbook 以观察程序任务中定义的间隔时间并将数据输出到操作 runbook。
注意
由世纪互联运营的 Microsoft Azure 不支持观察程序任务。
重要
从 2020 年 5 月开始,建议并支持使用 Azure 逻辑应用监视事件、计划定期任务和触发操作。 请参阅使用 Azure 逻辑应用计划和运行反复出现的自动化任务、流程和工作流。
本文逐步讲解如何创建观察程序任务,以便在将新文件添加到目录时进行监视。 学习如何:
- 导入观察程序 runbook
- 创建自动化变量
- 创建操作 runbook
- 创建观察程序任务
- 触发观察程序
- 检查输出
先决条件
要完成本文,需要满足以下条件:
- Azure 订阅。 如果还没有帐户,可以激活 MSDN 订户权益或注册免费帐户。
- 自动化帐户,用于保存观察程序、操作 runbook 和观察程序任务。
- 一个混合 runbook 辅助角色,观察程序任务在其中运行。
- PowerShell Runbook。 观察程序任务不支持 PowerShell 工作流 runbook 和图形 runbook。
导入观察程序 runbook
本文使用名为 Watcher runbook 的观察程序 runbook 在目录中查找新文件,以查找目录中的新文件。 该观察程序 runbook 检索文件夹中的文件的最后已知写入时间,并查找比该水印更新的任何文件。
可以使用以下步骤将此 runbook 从门户导入到自动化帐户中。
- 登录 Azure 门户。
- 搜索并选择“自动化帐户”。
- 在“自动化帐户”页上,从列表中选择自动化帐户的名称。
- 在左侧窗格的“过程自动化”下,选择“Runbook 库”。
- 确保在“源”下拉列表中选择了“GitHub”。
- 搜索“Watcher runbook”。
- 从目录中选择“Watcher runbook that looks for new files in a directory”,然后在详细信息页上选择“导入”。
- 为该 runbook 提供名称和说明(可选),然后单击“确定”以将该 runbook 导入到自动化帐户中。 窗口右上角的窗格中应显示“导入成功”消息。
- 从左侧窗格中选择“Runbooks”时,导入的 runbook 会显示在列表中你指定的名称下。
- 单击该 runbook,然后在 runbook 详细信息页上选择“编辑”,接着单击“发布”。 收到提示时,单击“是”以发布该 runbook。
还可以从 Azure 自动化 GitHub 组织下载 runbook。
- 导航到“Azure 自动化 GitHub 组织”页,了解 Watch-NewFile.ps1。
- 若要从 GitHub 下载 runbook,请选择页面右侧的“代码”,然后选择“下载 ZIP”以下载 zip 文件中的所有代码。
- 提取内容并导入 runbook。
创建自动化变量
使用一个自动化变量来存储前面的 runbook 从每个文件读取和存储的时间戳。
在“共享资源”下选择“变量”,并单击“+ 添加变量”。
输入“Watch-NewFileTimestamp”作为名称。
选择“日期时间”作为类型。 其默认值为当前日期和时间。
单击“创建”以创建自动化变量。
创建操作 runbook
在观察程序任务中,操作 runbook 用来对从观察程序 runbook 传递给它的数据执行操作。 需要从 Azure 门户或 Azure 自动化 GitHub 组织导入预定义操作 runbook。
可以将此 runbook 从 Azure 门户导入到自动化帐户中:
- 登录 Azure 门户。
- 搜索并选择“自动化帐户”。
- 在“自动化帐户”页上,从列表中选择自动化帐户的名称。
- 在左侧窗格的“过程自动化”下,选择“Runbook 库”。
- 确保在“源”下拉列表中选择了“GitHub”。
- 搜索“观察程序操作”,在目录中选择“处理由观察程序 runbook 触发的事件的监视操作”,然后选择“导入”。
- 可选择性地在导入页更改 runbook 的名称,然后单击“确定”以导入该 runbook。 浏览器右上角的通知窗格中应会显示“导入成功”消息。
- 转到“自动化帐户”页,然后单击左侧的“Runbooks”。 新 runbook 应在上一步中提供的名称下列出。 单击该 runbook,然后在 runbook 详细信息页上选择“编辑”,接着单击“发布”。 收到提示时,单击“是”以发布该 runbook。
通过从 Azure 自动化 GitHub 组织下载操作 runbook 来创建操作 runbook:
- 导航到“Azure 自动化 GitHub 组织”页,了解 Process-NewFile.ps1。
- 若要从 GitHub 下载 runbook,请选择页面右侧的“代码”,然后选择“下载 ZIP”以下载 zip 文件中的所有代码。
- 提取内容并导入 runbook。
创建观察程序任务
在此步骤中,你将配置引用在前面几节中定义的观察程序和操作 runbook 的观察程序任务。
导航到自动化帐户,在“流程自动化”下选择“观察程序任务”。
选择“观察程序任务”页,然后单击“+ 添加观察程序任务”。
输入“WatchMyFolder”作为名称。
选择“配置观察程序”,然后选择“Watch-NewFile”runbook。
输入以下参数值:
- FOLDERPATH - 混合 Runbook 辅助角色上用于创建新文件的文件夹,例如 d:\examplefiles。
- EXTENSION - 配置的扩展。 留空以便处理所有文件扩展名。
- RECURSE - 递归操作。 将此值保留为默认值。
- RUN SETTINGS - 用于运行 runbook 的设置。 选择混合辅助角色。
单击“确定”,然后单击“选择”以返回到观察程序页。
选择“配置操作”,然后选择“Process-NewFile”runbook。
输入以下参数值:
- EVENTDATA - 时间数据。 留空。 从观察程序 runbook 传入数据。
- Run Settings - 用于运行 runbook 的设置。 当此 runbook 在 Azure 自动化中运行时保留为 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,请参阅创建 PowerShell runbook。