Azure Function 长持续时间和应用服务计划,持久功能

标签 azure azure-functions azure-app-service-plans azure-durable-functions

我正在准备 AZ-204 认证。

我们想要长时间执行一个函数。解决方案(在 Microsoft 文档中)是使用应用服务计划或持久功能

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

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

解决方案1:将应用配置为使用应用服务托管计划并启用“始终开启”设置。 应该是"is"还是“否”?

解决方案2:使用 Durable Function 异步模式来处理 Blob 数据。 应该是"is"还是“否”?

解决方案3:将 HTTP 触发器有效负载传递到 Azure 服务总线队列中,以由队列触发器函数进行处理,并立即返回 HTTP 成功响应。 应该是"is"还是“否”?

根据我准备的内容,这三个答案都是正确的。谁能证实?

最佳答案

我不完全理解该函数的触发器。从文字上看好像是HTTP触发器和blob触发器??但我会假设它是一个 HTTP 触发器,它对 blob 数据进行了超过 4 分钟的处理。 对于这种情况,正确的答案是“不”、"is"、"is"。

解决方案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 函数分离到队列中,因此它能够运行 10 无穷大(取决于计划),因此这也被认为是正确的。函数的一个关键概念是分离工作的能力,队列是最常见的方法。从架构上来说,我可能更喜欢这种方法,但持久功能也可以工作。

如果您有任何需要澄清的问题,请询问,祝考试顺利。

关于Azure Function 长持续时间和应用服务计划,持久功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67749718/

相关文章:

azure - 如何使用 Terraform 在现有 keystore 中创建 secret ?

azure - 按计划和事件启动后台服务

Azure 应用服务 TCP/IP 端口耗尽

Azure Web App .NET Core 启动错误 - 如何查找原因

powershell - 为什么 Azure 在 PowerShell 命令中找不到预配配置?

sql-server - MS Access 在测试服务器和生产 SQL Server 之间切换连接

php - PHP 环境变量简写

node.js - Azure函数中途重新启动然后永远不会返回(HTTP触发器)

Python 和 Snowflake 如何将 Azure AD 用户名和密码添加到 Snowflake 连接以便能够访问帐户并运行 ETL 脚本?

azure - azure CPU 分钟数/天的说明