Azure WebApp和WebJob

时间:2016-03-15 22:16:43

标签: python csv azure azure-web-sites azure-webjobs

现在我有一个python脚本读取csv文件,进行一些计算,然后将csv写回计算结果,最后将文件通过电子邮件发送给用户。这是在每个人本地机器上完成的。此外,我们还有一个azure Web应用程序,可以执行一些不同的计算和用户交互。我们想要添加到Web应用程序的是一个小管理页面,它允许用户上传csv文件,在一些文本框中输入一些变量,然后点击"运行"。点击运行将导致文件和输入传递到将运行python脚本的Azure Web作业。

如何让网络应用程序提交上传的文件以及Web作业的输入?从本质上讲,我认为我需要弄清楚如何使Web应用程序与Web作业进行通信。

2 个答案:

答案 0 :(得分:0)

WebJob不是最适合的,因为你期待回复/回复。虽然你可以连续运行一个暴露REST界面的WebJob,但它确实不是一个很好的解决方案。请考虑一下:

  • 将文件上载到Azure Blob存储
  • 调用您的API控制器 以blob URL为参数的网站。网站现在可以阅读 该文件并处理它并返回您的应用程序的答案。

以下是一些使用blob存储的示例,如果您以前从未这样做过:

https://azure.microsoft.com/en-us/documentation/articles/storage-python-how-to-use-blob-storage/

答案 1 :(得分:0)

根据我的经验,我认为有两种解决方案可以满足需求。

  1. 在线模式。如果csv文件大小不大且计算过程很简单,您可以直接从上传的csv文件中用少量参数计算数据,然后将结果写入响应。

  2. 离线模式。预处理上传的csv文件并使用ARFF等参数转换为其他格式文件,然后将其推送到Azure Storage Queue。连续运行的webjob从存储队列中获取文件并使用参数part计算数据部分,然后将结果写入Azure存储Blob并记录下载的blob路径。