使用azure-resourcemanager-automation Java SDK关联Runbook与计划并设参
解决方案
你当前调用AutomationClient.getSchedules().createOrUpdate()仅完成了独立计划资源的创建,Azure中计划与Runbook的绑定需要通过**作业计划(Job Schedule)**资源实现,作业计划同时支持配置Runbook运行参数,具体实现步骤如下:
1. 构造Runbook参数映射
将你需要传入的5个参数封装为Map<String, String>对象,键为Runbook中定义的参数名(大小写敏感),值为对应参数值:
Map<String, String> runbookParams = new HashMap<>(); runbookParams.put("参数1名称", "参数1值"); runbookParams.put("参数2名称", "参数2值"); runbookParams.put("参数3名称", "参数3值"); runbookParams.put("参数4名称", "参数4值"); runbookParams.put("参数5名称", "参数5值");
2. 创建作业计划完成关联
调用SDK的作业计划创建接口,绑定已创建的计划、现有Runbook,同时传入参数:
// 替换为你的实际资源信息 String resourceGroupName = "你的资源组名称"; String automationAccountName = "你的自动化账户名称"; // 已创建完成的计划资源ID,可从createOrUpdate的返回值中直接获取 String scheduleResourceId = createdSchedule.id(); // 已存在的目标Runbook名称 String runbookName = "你的Runbook名称"; // 作业计划ID为随机UUID,每个绑定关系唯一 UUID jobScheduleId = UUID.randomUUID(); // 执行关联操作 automationClient.jobSchedules().define(jobScheduleId.toString()) .withExistingAutomationAccount(resourceGroupName, automationAccountName) .withSchedule(new ScheduleAssociationProperty().withId(scheduleResourceId)) .withRunbook(new RunbookAssociationProperty().withName(runbookName)) .withParameters(runbookParams) // 如需指定混合工作器组运行可添加下行,无需则删除 .withRunOn("混合工作器组名称") .create();
注意事项
- 操作身份需要具备
Microsoft.Automation/automationAccounts/jobSchedules/write权限 - 如需修改已有的绑定关系,需先删除对应旧作业计划再重新创建
- 若Runbook参数类型为布尔、数字等非字符串类型,需转换为字符串格式传入
内容的提问来源于stack exchange,提问作者Klatuu
相关产品推荐
相关产品推荐

