如何在Azure自动化账户中关联计划与Runbook?以及如何通过REST API实现该关联?
在Azure自动化账户中关联计划与Runbook的两种方法
我来帮你解答这两个问题,刚好我对Azure Automation的这类操作比较熟悉。
一、通过Azure门户手动关联
如果不想用代码,直接在门户里操作步骤很清晰:
- 登录Azure门户,找到你的自动化账户
- 在左侧导航栏的「流程自动化」分类下选择「Runbook」,定位到你要关联的目标Runbook
- 进入Runbook详情页后,左侧菜单选择「计划」,然后点击顶部的「添加计划」按钮
- 这里可以选择已有的计划,也能直接创建新计划;按照页面提示完成配置后,点击「创建」就完成关联了
二、通过REST API关联(对应你用的PowerShell cmdlet)
你用的Register-AzAutomationScheduledRunbook底层其实就是调用Azure Automation的REST API来实现的,对应的API是ScheduledRunbooks的CreateOrUpdate操作,具体细节如下:
API端点格式
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}/scheduledRunbooks/{scheduledRunbookName}?api-version=2023-11-01
其中scheduledRunbookName是Runbook名称和计划名称的组合,格式为{runbookName}@{scheduleName},比如你的Runbook叫MyBackupRunbook,计划叫DailyBackupSchedule,那这个参数就是MyBackupRunbook@DailyBackupSchedule。
请求体示例
需要提交JSON格式的请求体,指定要关联的Runbook和计划:
{ "properties": { "runbook": { "name": "你的Runbook名称" }, "schedule": { "name": "你的计划名称" } } }
认证与权限
- 你需要获取Azure AD的Bearer令牌作为
Authorization头的内容 - 操作账户需要拥有
Microsoft.Automation/automationAccounts/scheduledRunbooks/write权限
示例curl命令
如果用curl测试的话,大概是这样:
curl --location --request PUT 'https://management.azure.com/subscriptions/你的订阅ID/resourceGroups/你的资源组名/providers/Microsoft.Automation/automationAccounts/你的自动化账户名/scheduledRunbooks/RunbookName@ScheduleName?api-version=2023-11-01' \ --header 'Authorization: Bearer 你的AD令牌' \ --header 'Content-Type: application/json' \ --data-raw '{ "properties": { "runbook": { "name": "RunbookName" }, "schedule": { "name": "ScheduleName" } } }'
这个API调用和你用PowerShell cmdlet实现的效果完全一致,你可以根据自己的需求集成到代码里。
内容的提问来源于stack exchange,提问作者askwizard
相关产品推荐
相关产品推荐

