我启动虚拟机的管道。
参数
检查状态 Azure VM GET
@concat('https://management.azure.com/subscriptions/',pipeline().parameters.SubscriptionId,'/resourceGroups/',pipeline().parameters.ResourceGroupName,'/providers/Microsoft.Compute/virtualMachines/',pipeline().parameters.VMName,'/InstanceView?api-version=2020-12-01')
更改状态虚拟机
@or(and(equals(activity('Check Azure VM Status').output.statuses[1].displayStatus,'VM deallocated'), equals(pipeline().parameters.Command,'Start')),and(equals(activity('Check Azure VM Status').output.statuses[1].displayStatus,'VM running'), equals(pipeline().parameters.Command,'Deallocate')))
启动或暂停 Azure VM
POST @concat('https://management.azure.com/subscriptions/',pipeline().parameters.SubscriptionId,'/resourceGroups/',pipeline().parameters.ResourceGroupName,'/providers/Microsoft.Compute/virtualMachines /',pipeline().parameters.VMName,'/',pipeline().parameters.Command,'?api-version=2020-12-01')
这适用于启动 VM。我目前正在使用等待 10 分钟的 ADF 任务来确保 IR 已启动,但这不是最优雅的解决方案。 无论如何我可以强制此任务仅在自托管集成运行时启动并运行时完成?
我找到了以下命令:
获取-AzDataFactoryV2IntegrationRuntime -DataFactoryName -ResourceGroupName -Name -Status | 选择对象状态
这告诉我集成运行时的状态。