我每隔几分钟就会在计时器上运行一次Azure函数,由于外部API,每次运行不同时间后,它将开始失败,并且通过在Azure门户中手动单击重新启动按钮可以解决此问题然后工作又重新开始了。
有没有办法让azure函数重新启动自身或通过Web挂钩或API请求或在计时器上运行从外部重新启动azure函数
我尝试使用Azure的API管理服务,该服务可用于以天蓝色的方式重新启动其他类型的应用程序服务,但事实证明API中没有功能来请求重新启动天蓝色的功能,还调查了Power Shell和您似乎可以重新启动不同的应用程序服务,但不能使用Azure功能
,似乎是同一个问题我尝试使用API https://docs.microsoft.com/en-us/rest/api/azure/ 示例API请求,您可以在其中列出azure函数中的函数 GET https://management.azure.com/subscriptions/ {subscriptionId} / resourceGroups / {resourceGroupName} /providers/Microsoft.Web/sites/ {name} / functions?api-version = 2016-08-01
但是没有从我研究的内容中重新启动天蓝色功能的功能
基本上,我想重新启动Azure功能,就像我要按下此按钮一样 Azure functions manual stop/start and restart buttons in azure portal
因为在某些情况下,由于外部API我无法控制该作业,因此每次运行时该作业都会进入不良状态,并且手动单击重新启动会使该作业再次运行
答案 0 :(得分:1)
在事件上调用天蓝色函数的性质。这可能是计时器,触发器或类似HTTP事件的调用。它们本身无法重新启动,即,如果函数抛出异常,则无法找到特定实例并使用开箱即用功能重新运行它。
但是,您可以设计出更可靠的解决方案的方式:
答案 1 :(得分:1)
另一种重新启动功能的方法是使用host.json文件中的“ watchDirectories”设置。如果您的host.json看起来像这样:
{
"version": "2.0",
"watchDirectories": [ "Toggle" ]
}
您可以通过在函数中使用以下语句来切换重新启动:
System.IO.File.WriteAllText("D:/home/site/wwwroot/Toggle/restart.conf", DateTime.Now.ToString());
在查看日志时,该函数会在检测到目录中的文件更改时重新加载:
Watched directory change of type 'Changed' detected for 'D:\home\site\wwwroot\Toggle\restart.conf'
Host configuration has changed. Signaling restart
答案 2 :(得分:0)
为什么不尝试使用ARM API。由于Azure功能也属于应用程序服务类别,因此有时这可能会有所帮助, https://docs.microsoft.com/en-us/rest/api/appservice/webapps/restart