在 Azure webhook 中访问 post 查询参数
Accessing post query params in Azure webhook
我正在尝试 从 POST 中读取 URL 查询参数进入我的 Azure webhook (PowerShell).
我的 webhook 正在接收 POST 请求,例如:
Content-Type: text/plain; charset=utf-8
POST https://{notificationUrl}?validationToken={opaqueTokenCreatedByMicrosoftGraph}
正如您所梳理的那样,这里的上下文是 Microsoft Graph subscription 的创建。但是,我不想用太多细节混淆这个 post,因为我认为我的问题足够笼统:如何在 Azure webhook 中读取 POST 参数。
附加到此 webhook (based on this one) 的 runbook 显然需要所有客户端数据通过一个名为 WebhookData
的参数传入。我能够阅读 WebhookData
中的 WebhookName
、RequestBody
和 RequestHeader
。但是,我不知道如何读取到达我的 webhook 的 POST 请求中的 URL 查询参数。
具体来说,我需要访问那个 validationToken
。它没有出现在 WebhookData
中。我也试过从我的 runbook 中完全删除 Webhookdata
参数,但绝对没有任何东西进来。我还尝试添加 validationToken
参数,以及 WebhookData
参数,但是 validationToken
结果是空的。
我应该补充一点,连同来自 Graph 的 POST(不起作用),我正在使用 Postman 测试我的 runbook 并确保在 URL。同样,如果我将它包含在 POST 正文中,我可以读取它,但如果它是一个查询参数则不能。由于最终 Graph 将通过查询参数发送它,我想我必须先让它工作。
非常具体,Azure Runbooks
,不支持查询字符串。 From the documentation:
To receive data from the client, the runbook supports a single
parameter called WebhookData
. This parameter defines an object
containing data that the client includes in a POST request.
The WebhookData
parameter has the following properties:
Property
Description
WebhookName
Name of the webhook.
RequestHeader
Hashtable containing the headers of the incoming POST request.
RequestBody
Body of the incoming POST request. This body keeps any data formatting, such as string, JSON, XML, or form-encoded. The runbook must be written to work with the data format that is expected.
Azure Runbooks
有 2 个部分,触发器和运行手册:
Runbook
(右框)只接受单个 WebhookData
对象来管理 Azure Runbooks
将使用的变量和数据。
Webhooks
(左框),处理触发、接收数据并将其传递给 Runbook
。非常具体地,RequestBody
被指定为:
Body of the incoming POST request. This body keeps any data
formatting, such as string, JSON, XML, or form-encoded.This body keeps
any data formatting, such as string, JSON, XML, or form-encoded.
根据这个定义,非常具体地,即使 WebHooks
可以支持查询字符串,在这种情况下触发 Azure Runbooks
它们被明确忽略。
另外,如果最终的愿望是订阅 Microsoft Graph 事件,“更好”的方法是使用 Event Hubs
到 handle notifications:
Using Azure Event Hubs to receive change notifications differs from
webhooks in a few ways, including:
- You don't rely on publicly exposed notification URLs. The Event Hubs SDK will relay the notifications to your application.
- You don't need to reply to the notification URL validation. You can ignore the validation message that you receive.
- You'll need to provision an Azure Event Hub.
- You'll need to provision an Azure Key Vault.
我正在尝试 从 POST 中读取 URL 查询参数进入我的 Azure webhook (PowerShell).
我的 webhook 正在接收 POST 请求,例如:
Content-Type: text/plain; charset=utf-8
POST https://{notificationUrl}?validationToken={opaqueTokenCreatedByMicrosoftGraph}
正如您所梳理的那样,这里的上下文是 Microsoft Graph subscription 的创建。但是,我不想用太多细节混淆这个 post,因为我认为我的问题足够笼统:如何在 Azure webhook 中读取 POST 参数。
附加到此 webhook (based on this one) 的 runbook 显然需要所有客户端数据通过一个名为 WebhookData
的参数传入。我能够阅读 WebhookData
中的 WebhookName
、RequestBody
和 RequestHeader
。但是,我不知道如何读取到达我的 webhook 的 POST 请求中的 URL 查询参数。
具体来说,我需要访问那个 validationToken
。它没有出现在 WebhookData
中。我也试过从我的 runbook 中完全删除 Webhookdata
参数,但绝对没有任何东西进来。我还尝试添加 validationToken
参数,以及 WebhookData
参数,但是 validationToken
结果是空的。
我应该补充一点,连同来自 Graph 的 POST(不起作用),我正在使用 Postman 测试我的 runbook 并确保在 URL。同样,如果我将它包含在 POST 正文中,我可以读取它,但如果它是一个查询参数则不能。由于最终 Graph 将通过查询参数发送它,我想我必须先让它工作。
非常具体,Azure Runbooks
,不支持查询字符串。 From the documentation:
To receive data from the client, the runbook supports a single parameter called
WebhookData
. This parameter defines an object containing data that the client includes in a POST request.The
WebhookData
parameter has the following properties:
Property | Description |
---|---|
WebhookName | Name of the webhook. |
RequestHeader | Hashtable containing the headers of the incoming POST request. |
RequestBody | Body of the incoming POST request. This body keeps any data formatting, such as string, JSON, XML, or form-encoded. The runbook must be written to work with the data format that is expected. |
Azure Runbooks
有 2 个部分,触发器和运行手册:
Runbook
(右框)只接受单个 WebhookData
对象来管理 Azure Runbooks
将使用的变量和数据。
Webhooks
(左框),处理触发、接收数据并将其传递给 Runbook
。非常具体地,RequestBody
被指定为:
Body of the incoming POST request. This body keeps any data formatting, such as string, JSON, XML, or form-encoded.This body keeps any data formatting, such as string, JSON, XML, or form-encoded.
根据这个定义,非常具体地,即使 WebHooks
可以支持查询字符串,在这种情况下触发 Azure Runbooks
它们被明确忽略。
另外,如果最终的愿望是订阅 Microsoft Graph 事件,“更好”的方法是使用 Event Hubs
到 handle notifications:
Using Azure Event Hubs to receive change notifications differs from webhooks in a few ways, including:
- You don't rely on publicly exposed notification URLs. The Event Hubs SDK will relay the notifications to your application.
- You don't need to reply to the notification URL validation. You can ignore the validation message that you receive.
- You'll need to provision an Azure Event Hub.
- You'll need to provision an Azure Key Vault.