我可以在 azure 函数中实现异步 "fire and forget" HTTP 触发器吗

Can I implement async "fire and forget" HTTP triggers in azure functions

我有一个 azure 函数应用程序,它有一个很长的 运行 操作。我想通过 HTTP(为简单起见)触发它,有一些输入但没有输出。我不想在作业 运行.

期间一直保持 HTTP 连接打开

构建一个运行时接受一些数据然后在调用我的 run.csx 文件之前立即 returns 控制调用方的函数应用程序有哪些选项?

我建议您的 http 函数接受 + 验证工作请求并将消息排队到另一个函数正在侦听的工作 queue 中。因此,您将从 http 触发器模板开始,并添加队列输出绑定。

这样您的请求会立即 returns,您的长时间 运行 工作可以在队列触发函数的上下文中完成。一个好处是您将免费获得队列触发器的重试行为。例如。如果你的长 运行 任务中途失败,消息将在一段时间后重新处理(队列消息只有在成功处理后才会从队列中删除)。

分离还为您将来安排工作提供了更多选择。例如。将来可以通过另一个函数的队列输出来启动这项工作,w/o 需要一个 http 请求。