我已经在PowerShell核心堆栈上触发了Azure函数应用程序。脚本解析请求的主体,假设一切正常,它连接到Exchange,然后执行2个cmdlet来创建MailContact类型的联系人。最后,它与Exchange断开了连接。我有一个控制台应用程序,它正在执行POST请求,为身体中的一个联系人传递JSON数据。请求在一个for-每个循环中执行,在第五个成功请求之后,我得到的运行空间超过了预算错误。
脚本中的一些代码片段
..。
try {
Connect-ExchangeOnline -CertificateThumbprint $thumb -AppId $appId -Organization $org -Showbanner:$false -CommandName Get-Contact,Get-MailContact,New-MailContact,Set-Contact,Set-MailContact,Remove-MailContact
New-MailContact -ErrorAction stop @p | Out-Null
Set-Contact -ErrorAction stop @parameters | Out-Null
}
catch {
...
}
finally {
Disconnect-ExchangeOnline -Confirm:$false -InformationAction Ignore -ErrorAction SilentlyContinue
Get-PSSession | Remove-PSSession
}我尝试过的(但没有成功):
)的在线节流策略
起作用的是:拥有额外的函数应用程序,然后在两者之间每5个请求循环一次。
可能有助于下列方面的其他信息:
另外,从发送请求到返回响应大约需要7-8秒的时间。连接到Exchange需要大量时间。
任何帮助或提示如何解决运行空间预算错误?
发布于 2022-07-21 11:19:59
一个肮脏的解决办法是这样的:
try {
Connect-ExchangeOnline @ConnectExchange
} catch {
Write-Verbose -Verbose ($_.Exception.Message)
$Wait = ($_.Exception.Message) | Select-String ('(?<=for )(.*)(?= seconds)') -AllMatches
$Count = ([int]$Wait.Matches.Value)
Start-Sleep -seconds $Count
Connect-ExchangeOnline @ConnectExchange
}https://stackoverflow.com/questions/71876230
复制相似问题