使用 Azure 组件的定期 REST API 调用

Periodic REST API calls using Azure components

我想对第三方服务进行定期安排的 REST API 调用,并将结果发送到 Azure 事件中心或 Azure SQL。一个例子是获取 x 个位置昨天的天气(需要 x API 次调用)。

到目前为止,我已经看过: * 带有一些 python 代码的虚拟机,在该机器上使用一些调度程序。这行得通,但我们不是最优雅的方式 * 使用 Azure 调度程序(不好,因为似乎不可能动态构建 API 调用,例如使用 date-1 作为参数) * 数据工厂:似乎矫枉过正,并不是真的有意这样做

推荐的方法是什么?

根据您的描述,我推荐使用Azure Web Job来实现。

WebJobs 是 Azure 应用服务的一项功能,它使我们能够 运行 在与 Web 应用、API 应用或移动应用相同的上下文中的程序或脚本。

我们可以使用 Scheduled triggered WebJobs 定期调用 REST API。

更多关于WebJobs的信息可以参考:Run Background tasks with WebJobs in Azure App Service

下面的屏幕截图显示了如何创建一个计划触发的 WebJob,它将 运行 每 20 分钟定期触发一次。

要创建它,我们只需要上传.zip格式的.exe压缩文件,然后我们就可以定期运行这个.exe程序。

感谢您的建议。我最终为此使用了一个 Azure 函数,它可以通过 azure scheduler

的 REST 调用触发

由于我的函数代码在 python 中,我花了一段时间才找到如何做,但这是一个很好的开始:

https://github.com/yokawasa/azure-functions-python-samples/blob/master/docs/create-function-app-in-azure-portal.md

我已经通过 Azure 逻辑应用程序完成了完全相同的操作。

可以按计划或通过 HTTP 触发器触发逻辑应用程序。

为了拥有动态系统(例如不同的位置),我将位置存储在 Azure table 中。逻辑应用将从 Azure table 获取位置,并动态构建 API 调用,并将结果发送到事件中心。

date-1 可以在执行时轻松设置为参数。

只需要非常有限的编码