如何使用 Azure 无服务器架构运行长 Web 抓取脚本?

问题描述 投票:0回答:1

我需要运行一个很长的网络抓取脚本(大约需要一个小时才能完成),但问题是 Azure Functions 一段时间后超时。在虚拟机上运行脚本是否更好?为了保持 Azure Function 运行,我要么需要高级应用服务计划,要么将代码模块化为单独的函数。不确定哪一个更有效、更经济、更适合未来维护。

azure web-scraping azure-functions azure-virtual-machine
1个回答
0
投票

实际上,我觉得你有几个选择:

  1. 您可以在弹性高级计划或专用计划上使用功能应用程序,并将超时设置为无限制。请注意,保证最长 60 分钟,但也可以更长,但可能会停止,如下面的注释中所述 -> { “功能超时”:“-1” }
  • 高级计划执行仅保证 60 分钟,但技术上无限制。
  • 值 -1 表示无限制执行,但建议保持固定上限。
  1. 您可以使用持久函数,持久函数提供了对此模式的内置支持,简化甚至删除了与长时间运行的函数执行交互所需编写的代码。例如,Durable Functions 快速入门示例(C#、JavaScript、TypeScript、Python、PowerShell 和 Java)显示了一个简单的 REST 命令,您可以使用该命令启动新的 Orchestrator 函数实例。实例启动后,扩展会公开查询 Orchestrator 功能状态的 Webhook HTTP API。

    只需在任何搜索引擎中搜索长期运行的持久性,您就可以找到对此进行详细说明的文档。(我推荐)

  2. 当然,您也可以使用网络作业,这通常用于持久运行的长时间执行。

  3. 使用普通的网络应用程序进行抓取,只需确保您始终处于启用状态!!

  4. 你也可以去虚拟机,但那不在我的区域内。我认为都有优点和缺点,实际耐用或网络作业在成本和设置方面最有意义。

© www.soinside.com 2019 - 2024. All rights reserved.