在Azure中创建和提供临时HTML文件

时间:2013-01-09 21:18:47

标签: file azure roles instances temp

我们有一个应用程序,我们希望迁移到Azure以进行扩展。然而,在开始之前,有一个地方关注我:

我们有一个用户指向的网页。页面背后的代码转到数据库并生成HTML报告。新的HTML文档与一堆图表和其他图像一起放在一个临时文件中。然后,用户将被重定向到此新页面。

在Azure中,我们永远无法确定用户是否会因多种原因被定向到同一台计算机:Azure负载均衡器可能会根据容量将用户推送到其他计算机,或者可能会取消配置该计算机因为有问题,或其他什么。

因为这些只是临时文件的创建和删除非常,所以我最好将我的应用程序的临时目录指向某种共享驱动器,所有Web角色都具有读/写访问权限to,然后能够将URL映射到此共享驱动器。那可能吗?或者这会比我想要的更复杂?

我仍然可以让每个实例都写入自己的本地临时目录。它只需要一两秒钟来喂它们,所以我可以冒这个实例在那微秒内是否会停机的风险。这方面的问题是重定向到临时HTML文件是否将使用http 1.1并保持与该特定实例的连接。

感谢, 贾森

3 个答案:

答案 0 :(得分:1)

您可能需要查看以下两件事:

  • 使用支持某种分布式文件系统的Windows Azure网站(基于blob存储)。因此,您在Windows Azure网站中“本地”存储的文件将可从托管该网站的每个服务器获得(如果您使用多个实例)。
  • 从Blob Storage提供文件。因此,不是在每个实例上本地保存HTML文件(或尝试让用户坚持特定实例),而是将它们存储在Blob存储中并将其用于重定向。

答案 1 :(得分:0)

来自@Sandrino的好东西。还有一些想法:

  • 将生成的html存储在角色内缓存中(可以在您的Web角色实例中并置),并从缓存中提供html(在所有实例中共享)
  • 利用CDN。您可以将“CDN”文件夹映射到实际的边缘缓存。因此,您只需在代码中生成一次html,然后将其缓存到TTL到期,此时您必须再次生成内容。

答案 2 :(得分:0)

我认为azure blob是存储可由多个实例访问的html文件的最佳位置。您可以将用户重定向到该blob内容,也可以编写自定义页面以从blob呈现内容。