我正在研究如何在 Azure 中自动化某些内容,并想寻求一些建议。
环境:一个创建一些本地数据库备份的 VM,然后通过 azcopy 将它们发送到 Blob 存储。
目标:每次将备份复制到 Blob 存储时,我都想测试它的正确性,因此:
- 启动已经准备好的另一个数据库 VM - 从 Blob 存储复制备份文件
- 将其导入数据库 VM
- 进行一些检查
- 关闭数据库 VM
- 将其恢复到以前的状态
- 如果检查失败,发送报告
从我的研究来看,我似乎可以使用事件中心或数据工厂,两者与 Azure 函数一起使用。
您会推荐哪种方式,我应该采取哪些步骤(即创建数据工厂事件,使其在触发时做出反应,创建带有附加步骤的管道)?我对那里的所有选项有点不知所措。无论如何,提前谢谢您!
答案1
我建议您考虑结合使用 Azure Logic 应用和 Azure Automation 来完成这项工作。
逻辑应用是微软的云工作流引擎,可以由多种因素触发,包括文件到达 Blob 存储。逻辑应用程序允许您构建不同任务的工作流程,这些工作流程可以遵循特定的顺序、具有分支、错误检查等。
逻辑应用程序将负责任务的编排,然后我们可以使用 Azure 自动化来运行实际执行工作的 PowerShell,因为大多数任务都是 Azure 任务,因此 Azure PowerShell 非常适合此用途。工作流中需要运行脚本的每个步骤都将调用 Azure 自动化,执行工作并返回结果。
数据工厂不会做你想做的事,它更关心移动和处理数据,而不是针对 Azure 执行任务。函数可以完成其中的一些任务,但你会遇到函数时间限制的问题(最多 10 分钟)。逻辑应用程序和 PowerShell 的组合效果很好,我经常使用它。
您也可以只使用自动化和一个大型 PS 脚本,但使用逻辑应用程序可以让您构建工作流,它还提供了一种基于 Blob 存储触发的方法,而自动化无法单独做到这一点。