检查 Webhook
可以通过计划 Runbook 或使用 Webhook 来自动启动 Runbook。
借助 Webhook,你可以在 Azure 自动化中通过单个 HTTPS 请求来启动特定的 Runbook。
它允许外部服务(例如 Azure DevOps、GitHub 或自定义应用程序)启动 Runbook,而无需使用 Azure 自动化 API 实施更复杂的解决方案。
有关 Webhook 的详细信息,请参阅使用 Webhook 启动 Azure 自动化 Runbook。
创建 Webhook
通过执行以下步骤创建链接到 Runbook 的 Webhook:
- 在 Azure 门户中,打开要创建 Webhook 的 Runbook。
- 在 Runbook 窗格的“资源”下,选择“Webhook”,然后选择“添加 Webhook”。
- 选择“创建新的 Webhook”。
- 在“创建新的 Webhook”对话框中,你需要配置几个值。 配置后,选择“创建”:
- 名称. 为 Webhook 指定所需的任何名称,因为该名称不会向客户端公开。 它只用来标识 Azure 自动化中的 Runbook。
- 已启用。 Webhook 在创建后默认启用。 如果将它设置为“已禁用”,则没有客户端可以使用它。
- 到期日期。 每个 Webhook 都有一个到期日期,届时将不再可用。 你可以在创建 Webhook 后继续修改日期,前提是 Webhook 未过期。
- URL。 Webhook URL 是客户端使用 HTTP POST 调用以启动链接到 Webhook 的 Runbook 的唯一地址。 它是在你创建 Webhook 时自动生成的,你无法指定自定义 URL。 URL 包含一个允许第三方系统调用 Runbook 的安全令牌,不需要进一步进行身份验证。 因此,请将其作为密码看待。 出于安全原因,你只能在创建 Webhook 时,在 Azure 门户中查看该 URL。 将 URL 记录在一个安全位置,以供将来使用。
注意
创建 Webhook 时,请确保复制 Webhook URL,然后将其存放在一个安全的位置。 创建 Webhook 后,就不能再次检索该 URL。
选择“参数运行设置(默认值: Azure)”选项。 此选项具有以下特性,让你能够完成以下操作:
- 如果 Runbook 包含必需的参数,你需要在创建过程中提供这些必需的参数。 如果未提供值,则无法创建 Webhook。
- 如果 Runbook 中没有必需的参数,此处不需要进行任何配置。
- Webhook 必须包含 Runbook 任何必需参数的值,并包含可选参数的值。
- 客户端在使用 Webhook 启动 Runbook 时,不能替代已定义的参数值。
- 为了从客户端接收数据,Runbook 可能会接受名为 $WebhookData 且类型为
[object]
的单个参数,该参数会包含客户端包括在 POST 请求中的数据。 - 无需配置 Webhook 来支持 $WebhookData 参数。
完成后,选择“创建”。
使用 Webhook
若要在创建 Webhook 后使用该 Webhook,客户端应用程序必须发出带 Webhook URL 的 HTTP POST。
Webhook 的语法采用以下格式:
http://< Webhook Server >/token?=< Token Value >
客户端从 POST 请求中接收以下返回代码之一。
代码 Test 描述 202 已接受 已接受该请求,并已成功将 Runbook 排队。 400 无效的请求 未接受该请求,因为 Runbook 已过期、被禁用或 URL 中的令牌无效。 404 未找到 未接受该请求,因为未找到 Webhook、Runbook 或帐户。 500 内部服务器错误 如果成功,Webhook 响应将包含 JSON 格式的作业 ID,如下所示:
{"JobIds":["< JobId >"]}
响应将包含单个作业 ID,但 JSON 格式允许将来可能的增强功能。
无法通过 Webhook 确定 Runbook 作业何时完成或确定其完成状态。 只能使用作业 ID 并配合其他方法(例如 PowerShell 或 Azure 自动化 API)来选择此信息。
有关更多详细信息,请参阅使用 Webhook 启动 Azure 自动化 Runbook 页面。