Azure可以触发本地脚本以按计划运行吗?

时间:2019-04-30 15:32:57

标签: azure azure-data-factory azure-logic-apps microsoft-flow azure-eventgrid

我们有很多必须在本地计算机上运行的作业,但是我们希望能够从云中运行和管理这些作业。这些不是计算机管理员类型的作业。他们更多地是与业务相关的任务。

我们已经认真考虑过几种不同的方法:

  1. Logic Apps / Microsoft Flow 可以使用local computerOn-Premises Data Gateway上的文件夹中创建文件。然后,我们可以将该文件用作内部脚本的触发器,该脚本一直运行并监视该文件夹。但是,这感觉很笨拙,因为Logic Apps不会直接触发脚本,而是仅通过简单的文件创建事件直接触发脚本。这种方法还需要我们在Logic Apps中使用单个用户名/密码组合,并记住保持该密码为最新。
  2. Azure事件网格可以now将事件从Azure转发到混合连接,该连接将事件转移到本地计算机上的特定端口。从理论上讲,我们可以使用一个PowerShell脚本monitoring来移植和处理传入事件。对我来说,这似乎是从云端在本地计算机上触发脚本的最佳方法,但是我不确定这是否会按我期望的方式正常工作。

我们还研究了其他一些可以利用Azure解决这类问题的方法:

  1. Azure Automation Hybrid Runbooks可以触发本地作业。但是,此服务似乎主要用于管理任务,而不是日常流程。
  2. Azure DevOps 可以使用scripts触发Self-Hosted Agents在本地计算机上运行。但是,我认为Azure DevOps并非旨在按设定的时间表触发生产过程。它仅用于软件开发构建管道。
  3. Azure数据工厂 Integration Runtime允许您将数据从本地SQL Server迁移到云中。这似乎是将数据从内部部署移动到云的理想平台,但是我认为Azure数据工厂无法从云触发实际的内部部署脚本。我认为它只能与本地SQL Server一起使用。

所以我试图在这些方法中做出决定,或者看看是否有更好的方法。

我想我将尝试使用Azure事件网格方法并在某些本地计算机上安装Hybrid Connection Manager,然后使某些PowerShell脚本以24/7的速度运行以监视指定的端口。将来自Azure事件网格的事件路由到Hybrid Connection Manager之后,它将随后将其路由到PowerShell正在侦听的端口,然后PowerShell可以触发需要在本地计算机上运行的作业。

我真的很喜欢这种方法,因为我现在可以使用Azure事件网格将本地计算机上的本地事件连接到Azure和第三方事件。对我而言,这为异构系统之间集成提供了无限可能。但是在我采用这种方法之前,我想确保它是最好的方法。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您将从云中发送哪种类型的数据。您需要考虑

1)您是否希望“拉”或“推”功能触发任务? 如果您要在本地计算机上进行维护,我建议您使用Pull。此外,您本地计算机的容量有限,并且无法根据Push的负载进行扩展。

2)您是否要安装其他服务器软件? Azure Service Bus不需要任何网关即可在内部工作。

Azure Service Bus可以使用Windows Service实施,IIS始终在应用程序上,它仍可为您提供与第三方软件集成的灵活性,因为它可以与Logic Apps一起使用,Flow和Azure Functions可以与Azure服务总线。