【问题标题】:Run Azure Webjob by URL通过 URL 运行 Azure Webjob
【发布时间】:2023-04-09 17:10:01
【问题描述】:

我在 Azure 上托管了一个网络作业。我们按需运行的网络作业。 我有一个人(不同部门/不同公司) 每当他想要运行此网络作业时,他都必须运行它。但是如果没有访问 azure 网站,我们就不允许他访问 azure。

所以我在想,如果他访问了某个 URL,webjob 将直接开始运行。否则,这个人会一直要求我为他竞选这个网络工作。

而且我们不能让它连续运行,也不能按计划运行,因为有些日子我们根本不需要运行它,有些日子我们想要运行它可能是 200 次。我们永远不会知道。

【问题讨论】:

  • 是否可以通过监视 Azure 队列来触发作业?您可以在登录后为用户提供一个简单的站点,该站点只需将消息转储到队列中,网络作业就会将其拾取。

标签: c# azure azure-webjobs ondemand


【解决方案1】:

有几种方法可以运行 WebJob OnDemand。但是,目前所有这些都需要访问 Azure 帐户和/或 Web 应用程序。如果您想授予某人访问权限以仅运行该作业,那么您可以创建一个带有 UI 的简单站点,让他们调用该作业,您可以在其中为该站点实施您想要的任何身份验证方案。

然后,站点实现可以通过 HTTP POST 请求使用特制的“触发 URI”调用作业,如 this post 中所述。如您所见,该 URI 包含 Web 应用程序的基本身份验证凭据,因此您不能只告诉他们直接调用它。

另一个有趣的选择是使用IFTTT。您可以创建一个简单的“配方”,通过上面的 HTTP POST 调用作业,使用“Maker Channel”执行“That”操作,但重要的是,您可以配置“This”源以根据许多不同的输入触发 -例如当发送电子邮件、短信、电话等时。然后您可以进行设置,这样您的朋友只需发送电子邮件或文本即可触发工作。这样他们就无法访问您的任何 Web 应用凭据。对于自己,您也可以使用手机上的IFTTT "Do Button" app,通过点击手机按钮来触发工作!

【讨论】:

  • 实际上可以使用 RBAC(基于角色的访问控制)来设置它,尽管它有点复杂。如果您愿意,我可以在单独的答案中概述这些步骤。
猜你喜欢
  • 2020-01-09
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多