具有Service Bus的v2 Azure功能无法触发

时间:2018-11-14 14:05:19

标签: azure azure-functions azureservicebus azure-keyvault

我正在使用带有C#Functions SDK 1.0.23的Service Bus触发器的Azure Functions V2。我正在使用以下方法从KeyVault中获取机密并在触发器的设置中使用它们:How to map Azure Functions secrets from Key Vault automatically

该功能(尤其是一段时间未执行任何操作时)不会在订阅中包含消息时触发。如果然后我去门户网站并手动执行(是的,该特定执行将以空消息触发),它将使其生效,并拾取队列中的其他消息并对其进行正确处理。

这显然不是我们自动化测试的理想选择。有没有人看到过这件事,或者知道有什么会有所帮助的?

此外,Function App正在按消费计划运行。

1 个答案:

答案 0 :(得分:0)

应用服务计划

如果您使用的是App Service计划,那么它很简单,只需使用 Always on

消费计划

如果使用的是消费计划,则问题可能出在触发器与Azure基础结构(中央侦听器)未正确同步。发生这种情况的原因可能是您部署/编辑与触发器相关的设置的方式,如下面的问题#210中所述。

当您直接从Portal访问功能时,这可能迫使您的功能应用程序活跃起来,但是如您所见,这只是一种解决方法。 here

提到类似的内容

看看这些问题:

  1. Service Bus Topic Trigger goes to sleep - Consumption Plan

    他们还提到,仅当通过门户网站访问它或在同一应用程序中调用HTTP触发功能时,它才会唤醒,这与您看到的行为类似。

  2. Issue #210 enter image description here

  3. Issue #681

有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