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

问题描述 投票:0回答:1

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

我们认真考虑过几种不同的方式:

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

我们还研究了一些其他方法,我们可以利用Azure来做这种事情:

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

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

我想我将尝试使用Azure Event Grid方法并在某些本地计算机上安装Hybrid Connection Manager,然后让一些PowerShell脚本全天候运行以监视指定的端口。一旦Azure Event Grid中的事件路由到Hybrid Connection Manager,它就会将其路由到PowerShell正在侦听的端口,然后PowerShell可以触发需要在本地计算机上运行的作业。

我非常喜欢这种方法,因为我现在可以使用Azure Event Grid将本地计算机上的本地事件连接到Azure和第三方事件。对我来说,这为不同系统之间的整合打开了一个可能性的世界。但在采用这种方法之前,我想确保它是最好的方法。

azure azure-data-factory azure-logic-apps microsoft-flow azure-eventgrid
1个回答
0
投票

目前还不清楚您将从云端发送哪种类型的数据。你需要考虑一下

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

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

Integration Runtime可以使用Windows服务实现,IIS始终在应用程序上实现,它仍然可以灵活地与第三方软件集成,因为它可以与Logic Apps一起使用,Flow和Azure功能可以与Azure Service Bus一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.