Azure Functions 启动后消息从队列中消失
Messages disappearing from queue after Azure Functions start
所以我正在使用 Azure WebApp + Azure 存储队列 + Azure Functions 进行一些测试。通常一切都很好,但是如果我尝试模拟 Functions App 的失败(使用 Stop-AzureRmWebApp
)添加消息,启动 Functions App,消息被消耗,但不被处理(并且永远不会 returns队列)。我正在使用 python 来处理数据,但我认为这根本不重要。消息似乎就这么消失了。
我在 AlwaysOn 中使用 S1 计划(非动态)。
日志中没有任何合理的内容(这3次执行是在我禁用Function App之前):
2016-11-30T11:33:48.216 Executing: 'Functions.somename' - Reason: 'New queue message detected on 'queueName'.'
2016-11-30T11:33:48.216 Executing: 'Functions.somename' - Reason: 'New queue message detected on 'queueName'.'
2016-11-30T11:33:48.216 Executing: 'Functions.somename' - Reason: 'New queue message detected on 'queueName'.'
2016-11-30T11:33:48.216 Function started (Id=dc9fa205-6ddf-47e5-b529-90ccee2ddf0e)
2016-11-30T11:33:48.232 Function started (Id=5421bc7f-c438-4ffb-82e9-f7021604c247)
2016-11-30T11:33:48.232 Function started (Id=bb42ab71-3389-4668-a7f4-3d90d5cd96eb)
2016-11-30T11:33:54.576 Function completed (Success, Id=dc9fa205-6ddf-47e5-b529-90ccee2ddf0e)
2016-11-30T11:33:54.576 Executed: 'Functions.somename' (Succeeded)
2016-11-30T11:33:54.670 Function completed (Success, Id=5421bc7f-c438-4ffb-82e9-f7021604c247)
2016-11-30T11:33:54.670 Executed: 'Functions.somename' (Succeeded)
2016-11-30T11:33:54.685 Function completed (Success, Id=bb42ab71-3389-4668-a7f4-3d90d5cd96eb)
2016-11-30T11:33:54.685 Executed: 'Functions.somename' (Succeeded)
我怀疑您的消息 已被您的功能成功处理。检查执行的 Monitor 选项卡。监视器选项卡是您可以找到函数的所有历史执行的地方。
门户中的日志 window 仅用于 活动调试会话 - 即您在门户 running/debugging 您的功能中。例如。当门户断开连接一段时间后,这些日志将自行禁用。此外,如果您在日志 window 上打开了门户并停止了 Function App,这可能会导致日志流断开连接,从而导致日志不显示在 window 中。为了验证该理论,在 stop/start 之后,您可以再次 pause/start 日志流,它应该显示断开连接时发生的任何最近执行。
所以我正在使用 Azure WebApp + Azure 存储队列 + Azure Functions 进行一些测试。通常一切都很好,但是如果我尝试模拟 Functions App 的失败(使用 Stop-AzureRmWebApp
)添加消息,启动 Functions App,消息被消耗,但不被处理(并且永远不会 returns队列)。我正在使用 python 来处理数据,但我认为这根本不重要。消息似乎就这么消失了。
我在 AlwaysOn 中使用 S1 计划(非动态)。
日志中没有任何合理的内容(这3次执行是在我禁用Function App之前):
2016-11-30T11:33:48.216 Executing: 'Functions.somename' - Reason: 'New queue message detected on 'queueName'.'
2016-11-30T11:33:48.216 Executing: 'Functions.somename' - Reason: 'New queue message detected on 'queueName'.'
2016-11-30T11:33:48.216 Executing: 'Functions.somename' - Reason: 'New queue message detected on 'queueName'.'
2016-11-30T11:33:48.216 Function started (Id=dc9fa205-6ddf-47e5-b529-90ccee2ddf0e)
2016-11-30T11:33:48.232 Function started (Id=5421bc7f-c438-4ffb-82e9-f7021604c247)
2016-11-30T11:33:48.232 Function started (Id=bb42ab71-3389-4668-a7f4-3d90d5cd96eb)
2016-11-30T11:33:54.576 Function completed (Success, Id=dc9fa205-6ddf-47e5-b529-90ccee2ddf0e)
2016-11-30T11:33:54.576 Executed: 'Functions.somename' (Succeeded)
2016-11-30T11:33:54.670 Function completed (Success, Id=5421bc7f-c438-4ffb-82e9-f7021604c247)
2016-11-30T11:33:54.670 Executed: 'Functions.somename' (Succeeded)
2016-11-30T11:33:54.685 Function completed (Success, Id=bb42ab71-3389-4668-a7f4-3d90d5cd96eb)
2016-11-30T11:33:54.685 Executed: 'Functions.somename' (Succeeded)
我怀疑您的消息 已被您的功能成功处理。检查执行的 Monitor 选项卡。监视器选项卡是您可以找到函数的所有历史执行的地方。
门户中的日志 window 仅用于 活动调试会话 - 即您在门户 running/debugging 您的功能中。例如。当门户断开连接一段时间后,这些日志将自行禁用。此外,如果您在日志 window 上打开了门户并停止了 Function App,这可能会导致日志流断开连接,从而导致日志不显示在 window 中。为了验证该理论,在 stop/start 之后,您可以再次 pause/start 日志流,它应该显示断开连接时发生的任何最近执行。