我正在使用带有C#Functions SDK 1.0.23的Service Bus触发器的Azure Functions V2。我正在使用以下方法从KeyVault中获取机密并在触发器的设置中使用它们:How to map Azure Functions secrets from Key Vault automatically
该功能(尤其是一段时间未执行任何操作时)不会在订阅中包含消息时触发。如果然后我去门户网站并手动执行(是的,该特定执行将以空消息触发),它将使其生效,并拾取队列中的其他消息并对其进行正确处理。
这显然不是我们自动化测试的理想选择。有没有人看到过这件事,或者知道有什么会有所帮助的?
此外,Function App正在按消费计划运行。
答案 0 :(得分:0)
应用服务计划
如果您使用的是App Service计划,那么它很简单,只需使用 Always on
消费计划
如果使用的是消费计划,则问题可能出在触发器与Azure基础结构(中央侦听器)未正确同步。发生这种情况的原因可能是您部署/编辑与触发器相关的设置的方式,如下面的问题#210中所述。
当您直接从Portal访问功能时,这可能迫使您的功能应用程序活跃起来,但是如您所见,这只是一种解决方法。 here
提到类似的内容看看这些问题:
Service Bus Topic Trigger goes to sleep - Consumption Plan
他们还提到,仅当通过门户网站访问它或在同一应用程序中调用HTTP触发功能时,它才会唤醒,这与您看到的行为类似。
有3种建议的解决方法,已在上文第210期中提到
为了在这些部署选项为 使用,请打开Azure门户,然后单击“刷新”按钮,或进行 对同步触发器端点的API调用: https://github.com/davidebbo/AzureWebsitesSamples/blob/master/ARMTemplates/FunctionsWebDeploy.json#L90
Powershell示例: https://github.com/davidebbo/AzureWebsitesSamples/blob/master/PowerShell/HelperFunctions.ps1#L360-L365