如何在 Azure 中自动化不同的技术流程

How to automate disparate technology process in Azure

我希望在 Azure 中自动执行每周流程。整个过程由大约 5 个不同的子过程组成。总执行时间约为 8 小时。子流程技术包括:

  1. 在 Azure 中的 Windows VM 上运行的第三方数据加载程序。该程序能够在完成后发送电子邮件。然后这个过程需要触发...

  2. T-SQL 脚本 运行 在 Azure 中的 Windows 虚拟机上,完成后需要触发...

  3. Azure 中 Windows VM 上的 SSIS 作业 运行,完成后需要触发...

  4. 在 Azure 中的 Windows VM 上运行的 c# 应用程序,完成后需要触发...

  5. Python 代码 运行 在 Azure 中的 linux 虚拟机上。

我的问题是:可以使用哪些 Azure 技术(例如自动化 Runbook、逻辑应用程序)将这些东西拼接在一起,让我的周末回来?先感谢您。

这可能可以通过 Durable Functions 和外部事件模式解决:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-external-events

  1. 一个timer-trigerded函数每周启动一个协调器函数
  2. 编排器启动包含数据加载器的 VM(或 docker 容器等)并注入回调 URL。
  3. 编排器现在等待外部事件(参见上文 link)
  4. callback-URL 指向另一个引发事件以继续协调器的 Azure 函数:https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-external-events#send-events
  5. 编排器以相同的模式启动下一个外部任务...

要回答您的问题,是的,当然,有一些方法可以使用 Azure 自动执行该过程。我会选择 Logic Apps,因为业务流程自动化是它的主要用例之一。但是...这是最简单的部分!

对您来说困难的部分是让外部服务可以访问这些不同的应用程序。 运行 在 Windows 个 VM 中,它们没有像本机 Azure 服务那样的自然端点。

有很多方法可以做到这一点,具体取决于您修改 VM 的能力和编程技能。

继续:由于所有 VM 都在同一个域中并且网络连接,首先要看的是有点老派(新的和闪亮的并不总是最好的),Windows 任务。至少 2-4.

意思是,#2 上的计划任务可以检查电子邮件,然后 运行 它的 SQL,然后在 #3 上启动任务。

#3 可以 运行 它的作业然后在 #4 上启动一个任务,运行 是 c# 程序。然后#4 可以触发 Python 脚本。那么您的最大差距是如何触发 Python 脚本。这可能就像 FTP 为 #5 上的任务创建触发器文件一样简单。

Windows 脚本可以在 PowerShell 中完成。不是很优雅,但你的环境也不是。

最后,也是最重要的一点,您可以使用 Azure Monitor 和自定义日志 格式来跟踪进程。