我想对第三方服务进行REST API调用的定期调度序列,并将结果发送到Azure事件中心或Azure SQL。一个示例是获取x个位置昨天的天气(需要x个API调用)。
到目前为止,我已经看过: *使用某些python代码的虚拟机,在该计算机上使用一些调度程序。可行,但我们不是最优雅的方式 *使用Azure调度程序(不行,因为似乎无法动态构建API调用,例如使用date-1作为参数) *数据工厂:似乎有些过分,并非真的打算这么做
推荐这样做的方法是什么?
答案 0 :(得分:0)
根据您的描述,我建议使用Azure Web Job来实现它。
WebJobs是Azure App Service的一项功能,它使我们能够在与Web应用程序,API应用程序或移动应用程序相同的上下文中运行程序或脚本。
我们可以使用计划触发的WebJobs定期调用REST API。
有关WebJobs的更多信息,我们可以参考:Run Background tasks with WebJobs in Azure App Service
下面的屏幕快照显示了如何创建一个计划触发的WebJob,它将每20分钟定期运行一次。
要创建它,我们只需要上传.zip格式的.exe压缩文件,然后就可以定期运行此.exe程序。
答案 1 :(得分:0)
感谢您的建议。我最终为此使用了Azure函数,该函数可以通过Azure计划程序的REST调用来触发
由于我的功能代码是使用python编写的,所以花了一段时间才找到方法,但这是一个不错的开始:
答案 2 :(得分:0)
我通过Azure Logic应用做了完全相同的事情。
Logic Apps可以按计划或通过HTTP触发器触发。
为了拥有动态系统(例如,不同的位置),我将位置存储在Azure表中。逻辑应用程序将从Azure表中获取位置,并动态构建API调用,并将结果发送到事件中心。
date-1可以在执行时轻松设置为参数。
只需要非常有限的编码