你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 自动化通过 PowerShell Runbook 使用观察程序任务查找事件并触发操作。 观察任务包含两个部分:监视器和操作。 观察程序 runbook 以观察程序任务中定义的间隔时间并将数据输出到操作 runbook。
注释
由世纪互联运营的 Microsoft Azure 不支持观察程序任务。
重要
自 2020 年 5 月起,建议和支持使用 Azure 逻辑应用来监视事件、计划定期任务和触发操作。 请参阅 使用 Azure 逻辑应用计划和运行定期自动化任务、流程和工作流。
本文逐步讲解如何创建观察程序任务,以监视何时将新文件添加到目录。 你将学会如何:
- 导入监视器运行手册
- 创建自动化变量
- 创建行动手册
- 创建监视任务
- 触发观察程序
- 检查输出
先决条件
若要完成本文,需要满足以下条件:
- Azure 订阅。 如果还没有帐户,可以 激活 MSDN 订阅者权益 或注册 免费帐户。
- 自动化帐户,用于保存观察程序、操作 runbook 和观察程序任务。
- 一个混合 runbook 辅助角色,观察程序任务在其中运行。
- PowerShell 运行手册。 观察程序任务不支持 PowerShell 工作流 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 Automation GitHub 组织下载运行手册。
- 导航到“Azure 自动化 GitHub 组织”页,了解 Watch-NewFile.ps1。
- 若要从 GitHub 下载 Runbook,请从页面右侧选择 “代码 ”,然后选择“ 下载 ZIP ”以在 zip 文件中下载整个代码。
- 提取内容并导入 runbook。
创建自动化变量
使用一个自动化变量来存储前面的 runbook 从每个文件读取和存储的时间戳。
在“共享资源”下选择“变量”,然后单击“+ 添加变量”。
输入 Watch-NewFileTimestamp 以获取名称。
为类型选择 DateTime 。 它默认为当前日期和时间。
单击“ 创建 ”以创建自动化变量。
创建操作 runbook
在观察程序任务中,操作 runbook 用来对从观察程序 runbook 传递给它的数据执行操作。 需要从 Azure 门户或 Azure 自动化 GitHub 组织导入预定义操作 runbook。
您可以通过 Azure 门户将此流程文档导入到您的自动化帐户中:
- 登录到 Azure 门户。
- 搜索并选择 自动化帐户。
- 在 “自动化帐户 ”页上,从列表中选择自动化帐户的名称。
- 在左窗格中,选择进程自动化下的 Runbook 库。
- 确保在“源”下拉列表中选择 GitHub。
- 搜索 观察程序操作,选择 处理观察程序运行手册触发事件的观察程序操作,然后单击导入。
- (可选)在导入页上更改 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运行簿。
输入参数的以下值:
- FOLDERPATH - 混合 Runbook 工作节点上的一个文件夹,用于创建新文件,例如 d:\examplefiles。
- EXTENSION - 配置的扩展。 将字段留空以处理所有文件扩展名。
- RECURSE - 递归操作。 将此值保留为默认值。
- 运行设置 - 用于运行 Runbook 的设置。 选择混合工作者。
单击确定,然后单击选择以返回到监控页面。
选择“配置操作”,然后选择“Process-NewFile”runbook。
输入参数的以下值:
- EVENTDATA - 事件数据。 留空。 从观察程序 runbook 传入数据。
- 运行设置 - 用于运行 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”。