如何将参数发送到 Azure Runbook api

How to send parameters to Azure runbook api

我们正在使用 Azure 自动化和来自 Scriptrunner 的 groovy 脚本来根据不同的 Runbook 创建不同的作业

为此,我们使用以下 API 调用示例[​​=14=]

http.request(PUT) {
            requestContentType = ContentType.JSON
            headers.'Authorization' = "Bearer " + AuthToken 
            body = ['properties': ['runbook': ['name': Runbook],'parameters':['Vm': Env], 'runOn': 'devops']]

当我们需要对一个名为 Vm 的单个参数进行硬编码时,我们在此处格式化正文的方式工作正常,该参数是从 Env 参数字符串设置的

我们实际遇到的问题是正文的这个 parameters 部分可以有超过 1 个单个参数和不同的参数名称。

例如,根据不同的用例,以下正文也是可能的:

body = ['properties': ['runbook': ['name': Runbook],'parameters':[**'Vm': Env, 'Path': absolute, 'Target':test01**], 'runOn': 'devops']]

我想做的是构建参数部分有一个变量,然后我可以将其作为正文的一部分放置,如下所示

body = ['properties': ['runbook': ['name': Runbook],'parameters':[$paramList], 'runOn': 'devops']]

$paramList 是一个字符串,其中包含“'Vm': Env, 'Path': absolute, 'Target':test01”

由于某种原因它不起作用,我在构建该字符串并注入正文值的参数部分时遗漏了什么?

感谢帮助 问候

@cfrick 解释的解决方案是使用 Map 对象,如下所示。 我需要将我的动态参数定义为:

Map myParams=['Vm1': Env1,'Vm2': Env2]

然后将 Map 对象作为全局主体的一部分注入:

body = ['properties': ['runbook': ['name': Runbook],'parameters':myParams, 'runOn': 'devops']]