微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

存储帐户和应用服务上的静态网站

如何解决存储帐户和应用服务上的静态网站

我有一个关于存储帐户和应用服务的静态网站的概念性问题。

我的团队开发了一个 Angular10 + ASP.NET Core (API) 应用程序。我们的前端 (Angular10) 只使用我们的 API,所以我们的应用程序的可用性取决于前端 + 后端的可用性(我们的 API 不会被任何其他应用程序使用)。我们没有任何延迟问题或要求,因为我们的最终用户都在同一地区。我们的应用必须通过 HTTPS 使用并使用特定名称 (CNAME)。

当我们将应用程序部署到 Azure 时,我的团队决定使用商店帐户作为 Angular 10 的静态网站和 API 的 AppService 作为我们应用程序的后端单独部署它。 据我在 MS 文档上看到(here 是相关文章):

“应用服务静态 Web 应用是 Azure 存储静态网站托管的绝佳替代方案,也适用于不需要 Web 服务器来呈现内容的情况”

因为我们目前需要一个 AppService 来呈现内容我有一些问题:

  • 该应用可以运行,但是,是一种正确的架构方法,还是最好仅将我们的应用发布到 AppService?
  • 是否有任何安全/成本相关/任何主题使 StaticWebSite + AppService 方法比仅部署 AppService 更好?

我认为这种方法不会给我们带来任何便利或优势。取而代之的是,我们必须在 Azure 上配置更多内容以通过 SSL 进行连接,并为我们的应用和 AppService 部署提供 CNAME。

请你给我你的意见?

提前致谢

最好的问候

路易斯

解决方法

最好的方法是将 SPA 和 API 分开并分别托管。这会在应用之间创建松散耦合,让您在性能、可扩展性和部署方面具有更大的灵活性。

.NET Core API 可以托管在 Azure 应用服务上,还是可以重构为作为一组无服务器 Azure 函数运行?将其转换为函数将允许自动缩放并可能降低成本,因为您只需在函数运行时付费。这取决于 API 方法实际在做什么。

SPA 可以作为静态网站托管在存储帐户 blob 容器中,通过映射到它的 CDN 端点,您可以将其设置为在自定义域上使用 HTTPS 公开 SPA。或者,您可以使用 Azure 静态 Web 应用程序(尽管这仍处于预览阶段)。这简化了 SPA 的部署,因为它将连接到您的代码存储库,并在向存储库提交更改时为您构建和部署 SPA。

这当然意味着配置两个单独的 CNAME 子域记录(假设您希望 API 具有自定义域名),但这没什么大不了的,最终可以更清晰地分离关注点。

静态虚拟主机https://docs.microsoft.com/en-gb/azure/storage/blobs/storage-blob-static-website-how-to

Azure 静态 Web 应用https://docs.microsoft.com/en-gb/azure/static-web-apps/overview

使用 Azure CDN 进行静态托管https://www.red-gate.com/simple-talk/cloud/azure/static-hosting-with-azure-blob-storage-and-azure-cdn/

,

托管选项取决于您的要求。

在存储帐户上使用静态网站的用例是需要在服务器端操作或处理数据,只需调用相关的托管 Azure 服务(如 Azure 认知服务)或利用您自己托管在 Azure Functions 上的 Web 服务器。

https://azure.microsoft.com/en-us/blog/static-websites-on-azure-storage-now-generally-available/

您的静态网站调用 Azure WebApp API,因此您应该拥有 Azure WebApp 计划。

Azure WebApp 计划可以托管 API 和静态网站。这种情况的好处是:

  • 降低成本,因为您可以在同一个 Azure WebApp 计划中托管多个 WebApp。
  • Azure WebApp 为您提供比存储帐户更多的托管功能
  • 可以以相同的方式为静态网站和 API 实施部署

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。