使 Azure 门户上的 Web 应用每周仅可用几个小时

Posted

技术标签:

【中文标题】使 Azure 门户上的 Web 应用每周仅可用几个小时【英文标题】:Make the Web App on Azure portal only Available few hours in a Week 【发布时间】:2021-12-06 00:35:44 【问题描述】:

我正在构建一个尝试在 Azure 门户中托管的 ASP.Net Core Web 应用程序。我们要求这些应用程序只能在一周内的特定时间访问,这些时间存储在 Azure 数据库中。是否可以在查看数据库时使应用程序对用户可用/可访问

此处的设置是应用程序应仅在星期二 14:00 - 16:30 之间可用。当我尝试研究时,我们可以在门户中安排任务/工作流,但找不到我要找的东西。我只想知道这个要求是否可行,如果可以,请分享这个想法。我是新的 Web 应用开发和 Azure 部署,非常感谢任何帮助

【问题讨论】:

【参考方案1】:

Azure 中没有开箱即用的此功能。这是您必须自己处理的事情。

实现这一点的一个明显方法是检查应用程序是否应在每个请求上都可用。如果请求日期和时间介于数据库中设置的可用时间之间,则向用户显示网站内容,否则向他们显示某种不可用消息。

更复杂的方法是利用App_offline.htm 文件使您的网站不可用。您可以根据您希望站点离线/在线的日期/时间动态地将App_offline.htm 文件添加/删除到您的WebApp。

但请注意,当您的网站处于离线状态时,您仍需要为 WebApp 付费,因为资源保持供应状态。

【讨论】:

非常感谢,如果我们计划继续并在 prem 上托管应用程序,第一个选项是否有效..?第一个是如何工作的,所以当调用应用程序时,家庭控制器内部调用数据库中的设置表并检查当前日期时间?如果我们启用了 Azure AD 身份验证,默认情况下对应用程序的调用不会进行身份验证吗? How does the 1st one work, so when the Call to the App is made, inside the home controller call the Settings tables in the DB and check against current datetime? - 你当然可以这样做。如果此信息不经常更改,您还可以将其缓存,这样您就不必进行重复的数据库调用。 If we have enabled the Azure AD Authentication wont the Call to the application by default goes the Authentication? - 我认为它会,但用户唯一能做的就是登录。一旦他们登录到应用程序,他们将看到站点离线消息。 if we plan to go ahead and hosting application on prem will the 1st option work - 无论您在哪里托管应用程序,这两个选项都将起作用。第一个选项是特定于应用程序的,第二个选项是特定于 Web 服务器的(如果我没记错的话,是 IIS)。 HTH。 @TinyWang - 当然。但是停止 Web 应用程序会使其无法访问,并且用户会收到一些错误。我不确定这是否是 OP 正在寻找的。我的理解是 OP 希望 Web 应用程序始终可用,但用户只能在特定时间之间访问它。 不用担心。是的,在这种情况下,您可以使用定时触发的 Azure 函数来检查应用程序是否可用/不可用。在这个Function中,你可以查询数据库来找到这个信息。【参考方案2】:

您可以使用 Azure 自动化服务 来编排这样的流程。您必须创建一个运行手册(python 或 powershell 中的脚本)来查询数据库并确定托管您的 Web 应用程序的 Azure 网站 应该启动或停止的时间。

【讨论】:

我相信 OP 不希望站点被停止。目的是显示某种网站不可用消息。 如果我们使用此选项在其他日子关闭网站,那么我们可能只在托管应用程序的那些日子/时间收费? If we are going with this option to take the site down on other days then we may charged only on those days/time the application is hosted? - 不,您仍需付费。要停止计费,您必须完全删除 WebApp 资源。 @GauravMantri 这很容易实现吗?由于我是 Web 应用程序开发的新手,我应该选择更简单的解决方案 我只能想到这两个选项:)。

以上是关于使 Azure 门户上的 Web 应用每周仅可用几个小时的主要内容,如果未能解决你的问题,请参考以下文章

Azure Web 应用程序:favicon.ico 上的 HTTP 错误 500

Linux 上的 Azure Web 应用程序 - 使 Conda 安装持久化

Azure 仅允许通过 azure *** 访问 azure 门户

Azure:仅允许使用 *** 从本地访问 Web 应用程序

Azure 门户没有看到 DevOps 组织 [帐户问题?]

Azure Web 应用服务在几个小时内变得不可用