powershell - Webhook 活动在 ADF V2 中永久运行
问题描述
我想通过运行手册处理我的多维数据集,我在 Power Shell 中编写了代码。我想从 ADF 的 webhook 活动中调用这个运行手册。但是这个活动一直运行到超时并且无法完成,但是它成功地处理了多维数据集触发运行手册。我是否必须编写更多代码才能使其在 ADF 中成功或失败。还是我的配置中缺少其他内容。
解决方案
如果您希望 ADF 等到 Runbook 完成,那么 Webhook 活动(就像您正在做的那样)是正确的。但是您的 Runbook 需要使用Azure 自动化 webhook 文档中的 $webhookData 参数来接收 callbackUri 参数。并且 Runbook 需要对 ADF 回调 API 进行 Web 回调,以告知其已完成。
另一方面,如果您不希望 ADF 等待或知道 Runbook 是否失败,则使用 Web Activity 而不是 Webhook Activity。
如果继续使用 ADF Webhook,则需要更改 Azure 自动化运行手册以包含以下参数和解析:
param(
[object] $WebhookData
)
$ErrorActionPreference = "Stop";
try
{
#parse the webhook parameters
if (-Not $WebhookData.RequestBody)
{
#we're testing in the test pane
$WebhookData = ConvertFrom-Json -InputObject $WebhookData
}
$WebhookBody = ConvertFrom-Json -InputObject $WebhookData.RequestBody
[string] $callbackUri = $WebhookBody.callbackUri
#complete your typical runbook work here...
if ($callbackUri)
{
$null = Invoke-WebRequest -Method Post -Uri $callbackUri -ContentType "application/json" -Body '{"StatusCode": "200"}' -UseBasicParsing
}
}
catch
{
if ($callbackUri)
{
$null = Invoke-WebRequest -Method Post -Uri $callbackUri -ContentType "application/json" -Body '{"StatusCode": "500", "Error": {"ErrorCode":100,"Message","$_"}}' -UseBasicParsing
}
"Failed: $_"
throw $_
}
这应该可以解决您认为 Runbook 永远运行的 ADF 问题。
推荐阅读
- python - 如何将dict值总和到元组列表中?
- python - 使用不在列中的元素对 Pandas 上的列进行 One-Hot 编码
- javascript - Mongo 未定义的响应
- javascript - 省略没有填充属性的对象
- reactjs - 使用 Material-ui 进行组件对齐
- flutter - 有没有办法用 vscode 自动格式化颤振?
- javascript - 使用JS获取csv文件并在图表Js中显示数据
- r - 有没有办法直接从 excel 表中准备数据以在 R 中执行统计测试?
- arrays - React javascript两个对象数组,我想按键查找和过滤,结果,我想用另一个按键计数
- python - 使用 OpenCV 将 RTSP 视频流式传输到 Tkinter 帧