使用 Webhook“参数列表中缺少参数”触发 Azure 自动化 Runbook 失败

Posted

技术标签:

【中文标题】使用 Webhook“参数列表中缺少参数”触发 Azure 自动化 Runbook 失败【英文标题】:Azure Automation Runbook fails triggered with Webhook "Missing argument in parameter list" 【发布时间】:2022-01-01 10:06:12 【问题描述】:

我在 Azure 自动化帐户中放置了一个相当简单的脚本,用于停止 Azure 容器实例。当我测试它或单击开始按钮时,我从门户顺利运行,没有产生错误并正确完成工作。 '''

Param
(
  [parameter (Mandatory=$false)]
  [object]$WebhookData
)

try

    "Logging in to Azure..."
    Connect-AzAccount -Identity

catch 
    Write-Error -Message $_.Exception
    throw $_.Exception


$ACIs = Get-AzContainerGroup

foreach ($ACI in $ACIs)
    
    Write-Output ("Shutting down the following Azure Container Instance:  " + $ACI.Name)
    Stop-AzContainerGroup -Name $ACI.Name -ResourceGroupName 'MY_RESOURCE_GROUP_NAME'
    Write-Output ("")

我创建了一个 webhook 来启动该脚本。每当我发送发布请求以触发该脚本时,它都会失败并出现以下错误: '''

ParserError:
Line |
| … .ps1' -WebhookData WebhookName:XXXX,RequestB …
| ~
| Missing argument in parameter list.

我尝试在消息正文中添加某项内容,从 PowerShell 和 Postman 发送请求。我收到了 JobIds 和状态码 202 的回复。我一直在寻找类似的问题,但我得到的唯一问题是 one 没有回答。

有什么想法吗?

【问题讨论】:

【参考方案1】:

问题出在 Azure 自动化 Runbook 中的 Powershell 版本。使用 Powershell 5.1 解决了这个问题。看起来,当 Runbook 使用 Powershell 7.1 时,它存在一些格式问题:link。

【讨论】:

以上是关于使用 Webhook“参数列表中缺少参数”触发 Azure 自动化 Runbook 失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 Zapier Json 对象数组触发多个 webhook

为啥 Stripe 事件不会触发并且不会被 webhook 接收?

钩子(hooks)—webhook-使用钩子自动触发部署

使用 webhook 在 twilio 中触发获取请求

Paypal Buy Now 会触发收到付款的 webhook 吗?

使用 Stripe Firebase 扩展 Webhook 运行订阅付款未触发