想要在周六、周日和周一早上暂停数据库想要使用任何脚本或任何选项自动恢复是做什么的?或如何?
谢谢!
此任务没有特定功能,但使用多种技术组合是可行的。o 执行暂停/重启功能,您可以使用Azure REST API。
重复计划
我推荐具有强大重复触发器的逻辑应用程序。您很可能需要每天运行它,但您可以指定小时数。要仅在特定日期继续,您需要添加一些额外的处理来从运行时解析 DayOfWeek:
dayOfWeek(convertFromUtc(utcNow(), 'Eastern Standard Time'))
获取不记名令牌
在此示例中,我使用服务原则进行身份验证,并使用 Azure Key Vault 存储相关机密:
检查资源的状态
下一步是检查数据仓库的状态:如果它已经暂停,我们只想在状态为“在线”时尝试暂停它。为此,我们将再次调用 API,这次传递我们在上面获得的 Bearer Token:
在此示例中,我使用变量而不是 Key Vault 来演示不同的方法。
我们将使用上一个操作的 StatusCode 属性来进行此确定:
检查是否有任何正在运行的作业
如果数据仓库的状态是“在线”,接下来要检查的是是否有任何活动进程。我们通过对数据仓库本身运行查询来完成此操作:
然后,我们将在变量中捕获结果并在另一个 Condition 活动中使用它:
body('Get_Ops_Count')?['resultsets']['Table1'][0]['OpsCount']
发出暂停命令
如果没有活动的作业,我们可以自由地最终发出暂停命令。再一次,我们将使用之前获得的 Bearer Token 来利用 REST API:
重启数据仓库
Restart 过程非常相似,只是不需要检查活动进程,因此您应该能够从这个示例中推断出来。要重新启动数据仓库,REST 端点是“恢复”而不是“暂停”。