我想使用" Log Filter Plugin"以平滑的方式在Rundeck中的步骤之间传递数据。使用"键值数据"。
我有一个步骤调用一个返回带有access_token的json的服务,例如:{"access_token": "xsada3r"}
。在下一步中,我想使用该access_token发送新请求。
我似乎无法正确使用正则表达式。尝试使用:"([^"]+)"\s*:\s*"([^"]+)",?
,我用" Highlight Output"进行了测试。它起作用,但不适用于"关键值数据"。
(我已经使用bash脚本解决了这个问题,但我想使用" Log Filter插件",如果可能的话)
答案 0 :(得分:3)
您可以使用以下过程为作业捕获数据。 对于此示例,我们将模仿您在bash“内联脚本”步骤中接收JSON令牌格式{" access_token":" xsada3r"}的方式。由于我们将此JSON格式作为参数提供,因此我们需要修改(对于此示例)格式,以便将“双引号”保持在JSON格式内,根据我们的documentation,通过包装每个格式带单引号的双引号。
第一。第一步,我们创建内联脚本,模拟收到的JSON格式:
#!/bin/bash
json={'"access_token"':'"xsada3r"'}
echo RUNDECK:DATA:json=$json
我们将完整的JSON格式(值)设置为'json'变量(key)。然后,使用默认“RUNDECK:DATA :( key)=(value)”格式的“echo”,以便通过默认的“键值数据”日志过滤器模式获取。
第二。使用默认的正则表达式设置将“键值数据”日志过滤器添加到该步骤(这也可以设置为“全局日志过滤器”):
Add Log filter: Key Value Data
如果启用“日志数据”,您将在日志输出中注意到作业执行时捕获的键值数据:
第3步:对于此作业中的以下步骤,我们将从捕获的键值中回显每个JSON的名称和值。我们使用“cut”命令并使用JSON的“双引号”作为分隔符:
Next steps to use captured data
完成后,作业的日志输出将显示脚本结果,键值数据(如果启用了日志数据)以及我们回应的JSON的名称和值:
您可以在以下网址找到有关数据传递的更多信息:
希望有所帮助