【问题标题】:Http trigger enable Azure function timeoutHttp 触发器启用 Azure 函数超时
【发布时间】:2020-07-03 19:50:37
【问题描述】:

最近我开发了 Azure 功能,可以作为 web 钩子和 http 触发器启用。在这个函数中,我得到了 JSON 有效载荷,其中包含下载 URL。

我担心在某些情况下下载内容可能有大文件(大约 200 MB 到 300 MB),并且根据 Azure 文档,http 触发器启用 azure 函数超时为 MAX = 230 秒。

我已经在使用 async/await 来下载如下文件。

await fileBlob.UploadFromStreamAsync(webClient.OpenRead(downloadItem.DownloadUrl));

我的问题如下。

  1. 如果我的函数超时,还有哪些替代选项?
  2. 当我从第三方服务器下载文件时,Azure 是否会继续计算秒数?
  3. 在我的 JSON 负载中,我有 2-3 个下载 URL。怎样才能开始下载所有的URL并行而不是一个一个?

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    听起来非常适合耐用功能 - Fan-out pattern: https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-cloud-backup?tabs=csharp

    您的 http 触发函数将启动一个协调器。这将启动 n 个活动功能。每个 URL 一个。

    【讨论】:

    • 感谢您的回复。我确实探索了这个选项,但这里的问题是单个工作函数也可能超时。就像您提到的那样,编排器将启用 2-3 个子函数来下载文件,但在子函数内部,可能会对其施加 243 秒的超时限制。你的想法?
    • 活动函数不受240秒的HTTP超时时间的约束,只与一般的函数超时时间(在消费计划中运行时)绑定。但这至少需要 5 分钟
    • 好的。你的意思是说 Main Orchestrator 函数是 HTTP 绑定的,因此有 240 秒的超时时间,而子函数不是 http 绑定的,因此它的超时时间至少为 5 分钟?
    • 几乎:您将拥有三个功能:1) HTTP 触发(受 240 秒 HTTP 超时限制)。 2)Orchestrator(实际上不是任何超时约束)。 3)Activity Function(受通用Function超时约束,至少5min)
    • 好的。知道了。意味着 1) 第三方服务器将启用主要的 HTTP 触发器启用功能,该功能将提取必要的数据并激活 2) 协调器功能,这将进一步启用 3) 多个活动功能。此处 240 秒超时仅适用于 HTTP,Orchestrator & Activity 函数有 5 分钟的最小超时,根据 Azure 文档可以延长至 10 分钟或更长时间。
    猜你喜欢
    • 1970-01-01
    • 2020-04-08
    • 2021-03-26
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多