4
我有一个PowerShell HTTP触发器连接到Slack命令。如果PS触发器在3秒内响应<一切都很好。我有这个工作如何从Azure功能PowerShell HTTP触发器立即响应,然后响应“带外到另一个Url”?
如果需要更长时间,Slack需要两件事情,立即响应,然后在response_url
的带外响应。
这工作。如果我在set-content
之后放置了sleep 10
,则返回和Slack都表示超时。
有没有办法在PowerShell中实现这一点?
@"
{
"response_type": "ephemeral",
"text": "Checking $(get-date) ..."
}
"@ | set-content $res -Encoding Ascii
带外工作。
$b = @"
{
"response_type": "in_channel",
"text": "It's 80 degrees right now.",
"attachments": [
{
"text":"Partly cloudy today and tomorrow"
}
]
}
"@
Invoke-RestMethod $responseUrl -Method post -Body $b -ContentType "application/json"
“简单”的方法是始终返回即时响应,然后在带外执行,即使它在3秒内完成。否则,您需要将您正在进行的操作和时间设置为背景,以便在2 - 2.5秒后您可以返回即时响应。如果您可以在Azure函数中运行空间(异步调用)以及等待超时,那么这是可行的。 – briantist