Alexa超时与天蓝色功能

时间:2017-09-09 10:32:07

标签: azure azure-functions alexa-skill

我有一个天蓝色的函数正在处理对Alexa技能的请求,但由于天蓝色的函数在10秒内没有响应(需要一个alexa技能),所以经常会出现超时:

  

请求的申请花了太长时间才回复

     

请求标识符:amzn1.echo-api-request.xxxxx.xxx   应用程序必须在发送请求后的10秒内响应。

我猜测天蓝色功能应用程序在不活动后会被删除以节省类似于天蓝色网站的资源。

azure功能应用程序在消费计划下运行,我似乎无法找到一个选项,让它始终在上,就像天蓝色网站一样。< / p>

我能想到的唯一其他选择是在函数应用程序中创建一个函数来ping以保持azure函数的活动。它看起来有点hacky所以我想知道是否有更好的方法来保持azure功能应用程序活着?

1 个答案:

答案 0 :(得分:3)

这是正确的,因为这是消费计划的设计。如果应用程序上的所有函数在给定时间内没有收到处理请求,则实例将被“拆除”,您将不得不为下一个请求“预热”接受。

  • 您可以按照建议“ping”一个功能来保持它。执行此操作的最佳方法可能是使用基于计时器的触发器将新功能部署到同一应用程序,该触发器可以直接返回。请注意,这可能会因为耗尽执行时间而产生更多“成本”,尽管非常小。
  

防止更改为冷启动模式非常容易。只需在每5分钟执行的同一个功能应用程序中添加一个时间触发功能。但请注意,如果超出您的免费执行积分,这可能会产生额外费用。

Cold Start and Warm Start on Consumption Plan

  • 或者,您可以使用具有“始终开启”功能的应用服务计划,但是,您可能需要权衡此方法与选项1的成本/收益
  

如果您运行App Service计划,则应启用Always On设置,以便您的功能应用程序正常运行。在App Service计划中,函数运行时将在几分钟不活动后进入空闲状态,因此只有HTTP触发器才会“唤醒”您的函数。这类似于WebJobs必须启用Always On的方式。   Always On仅适用于App Service计划。在消费计划中,平台会自动激活功能应用程序。

Always On