azure - Azure Functions 一次可以完成多少代码?
问题描述
我是 Azure 和 Azure Functions 的新手,但我的团队计划很快迁移到 Azure。现在我正在研究如何使用 Azure Functions 来完成我通常在 .Net 控制台应用程序中执行的操作。
我的问题是,Azure Functions 可以处理相当多的代码处理吗?
我们的团队使用了几个控制台应用程序,这些应用程序有效地获取管道分隔文件、执行一些业务逻辑、使用数据更新数据库并记录所有过程。到目前为止,从我一直在阅读的内容来看,我通常会看到 Azure Functions 用于一小段代码。它们的意义有多大?使用一堆 Azure Functions 来替换控制台应用 EX 是否是最佳实践:一个函数读取文件并创建对象列表,另一个函数循环这些项目并添加业务逻辑,然后另一个函数将数据写入数据库还是可以使用一个 Azure 函数来完成所有这些操作?
解决方案
Direct answer is yes - you can run bigger pieces of code as Azure Function - this is not a problem as long as you meet their limitations. You can even have dependency injecton. For chained scenarios, you can use Durable Functions. However, Microsoft do not recommend long running functions, cause of unexpected timeouts. See best practices for azure functions.
Because of that, I would consider alternatives:
- If all what you need is run console app in Azure you can use WebJobs. Here is example how to deploy console app directly to azure via VisualStudio
- For more complex logic you can use .NET Core Worker Service which behaves as Windows Service, and could be deployed to azure as App Service.
- If you need long-running jobs but with scheduled runs only I had really great experience with Hangfire which can be hosted in Azure as well.
推荐阅读
- python - 将数据写入 csv 文件
- java - ProgressBar 没有出现在位于 Fragment 的 WebView 中,如何在 WebView android 中显示 ProgressBar?
- javascript - 如何固定 LegendBox 在图表中的位置?
- selenium - Selenium Chrome 78 的基本身份验证问题
- angular - 反应形式的必需 DatePicker
- python - 将状态简化为缩写
- spacy - 印地语的 Spacy 自定义 POS 模型
- c++ - 为什么全局函数 void showA(A& x) 能够访问 A 类的私有成员?
- spring - 在 spring 中使用 websockets,如何发送多个更新消息?
- makefile - 链接安装在自定义位置的 SSL 和加密库时出错