【问题标题】:Calling Azure function synchronously, without HttpTrigger同步调用 Azure 函数,无需 HttpTrigger
【发布时间】:2018-03-15 21:24:39
【问题描述】:

我想通过 HTTP 测试队列触发的 Azure 函数(集成测试)。

是否有任何通用方法可以同步调用已部署的 Azure Function?

我已经使用admin/functions/{function} 端点as shown here 成功调用了它。但是我得到202 Accepted 这不好 - 我的测试需要等待函数完成(如果函数失败则失败)。

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    这种行为是由函数驱动的,而不是客户端。因此,如果您的 Function 正确关闭了 http 连接,但继续处理,则客户端对此无能为力。

    因此,您可以通过队列进行测试,也可以使用带有 HTTP 触发器的辅助函数调用相同的处理方法,该方法仅在完成时返回。

    【讨论】:

    • 我对您的第一段感到困惑 - 此函数中没有 http 绑定。无论如何,听起来没有办法做我想做的事,所以我会采纳你的建议(带有 http 触发器的额外“侧面”功能)。谢谢。
    • @Iain 您在询问有关使用 HTTP 触发器的问题,因此答案基于此,尽管队列的行为方式相同,这意味着您可以在函数继续执行时确认队列或推送响应过程。你有什么理由接受另一个答案吗?
    • (其实并不重要,但是...)我不是在问 HTTP 触发器。我正在使用“管理 HTTP 端点” - 请参阅 Chris 的回答。他是 MSFT Azure 团队的一员,向我们提供了内部细节。我们三个人都同意最好的解决方法:) 谢谢。
    • @Iain 好吧,他确实告诉过你按照我的建议去做。 :) 我无法编辑推荐,但 HTTP 触发器或 http 端点无关紧要。该函数正在关闭 http 连接并继续处理。除了我的回答建议之外,您无能为力。
    • @Iain 我知道,请阅读我的回答。我知道它们是如何工作的。我正在解释你所看到的行为。如果您找到了我建议之外的其他方法,请回来告诉我们。
    【解决方案2】:

    这是不可能的。 Azure Functions 主机不支持将队列触发器的输出返回到管理 HTTP 终结点。我建议研究一下 Johns-305 的建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多