繁体   English   中英

Azure Function 长期和应用服务计划,持久 function

[英]Azure Function long duration and App Service Plan, Durable function

我正在准备 AZ-204 认证。

我们想在很长一段时间内执行 function。 解决方案(在 Microsoft 文档中)是使用 App 服务计划或持久功能

在一次练习测试中,我发现对以下问题的回答令人困惑:

“您开发了一个 HTTP 触发 Azure Function 应用程序来处理 Azure 存储 blob 数据。该应用程序是使用 output 绑定到 blob 上触发的。该应用程序在四分钟后继续超时。该应用程序必须处理 blob 数据。您需要确保该应用程序不会超时并处理 blob 数据。” 建议的答案:

解决方案1:将应用配置为使用应用服务托管计划并启用 Always On 设置。 应该是YES还是NO??

解决方案2:使用 Durable Function 异步模式来处理 blob 数据。 应该是YES还是NO??

解决方案3:将 HTTP 触发器有效负载传递到 Azure 服务总线队列,由队列触发器 function 处理并立即返回 HTTP 成功响应。 应该是YES还是NO??

根据我准备的三个答案是正确的。 谁能证实?

我不完全理解 function 的触发器。从文本来看它似乎是一个 HTTP 触发器和一个 blob 触发器? 但我会假设它是一个 HTTP 触发器,它对 blob 数据进行一些处理超过 4 分钟。 对于这种情况,正确的答案是 NO,YES,YES imo。

解决方案 1: https://learn.microsoft.com/en-us/azure/azure-functions/functions-scale#timeout无论应用服务计划如何,HTTP 触发器的最大超时为 230 秒。

解决方案 2: https://learn.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-overview?tabs=csharp#async-http如果您立即返回,我会认为这是真的对此模式的文档中所述的响应。 我已经使用了相当多的耐用功能,它肯定能够解决问题并且还允许检查状态,非常容易取消。

解决方案 3:由于我们将我们的工作从 HTTP function 中分离到队列中,它能够运行 10-infinity(取决于计划),因此这也被认为是正确的。 函数的一个关键概念是分离工作和队列的能力,这是最常见的方法。 在架构上我可能更喜欢这种方法,但持久函数也可以。

请询问您是否有任何需要澄清的问题并祝您考试顺利。

答案是否定的

正确的解决方案:将 HTTP 触发器有效负载传递到 Azure 服务总线队列,由队列触发器 function 处理并立即返回 HTTP 成功响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM