【运维自动化-标准运维】如何实现在不同步骤间传递参数

复制代码
当流程有多个步骤时,经常需要把前面某个个步骤处理的结果传递给下一个或后面的步骤使用(输出作为输入),这就是跨步骤传参的场景,标准运维通过特有的标记符号"<SOPS_VAR>key:value</SOPS_VAR> "来实现。

理解标记符号"<SOPS_VAR>key:value</SOPS_VAR>"

使用场景就是在脚本里使用标准运维的标记符号"<SOPS_VAR></SOPS_VAR>",将要传递的数据以key/value对的形式包含在标记符号中,并使用echo/print等打印到作业平台的日志中,shell和Python都可以。

shell:

复制代码
echo "<SOPS_VAR>key:val</SOPS_VAR>"

Python:

复制代码
print("<SOPS_VAR>key:val</SOPS_VAR>")

例:

复制代码
message="hello blueking"
echo "<SOPS_VAR>message:$message</SOPS_VAR>"
key "message"对应的value是"hello blueking"

实操演示

例:标准运维流程有两个步骤,第一个步骤使用作业平台插件执行脚本输出的"hello blueking"内容想要给第二个步骤使用

1、步骤一使用脚本执行模拟输出"hello blueking"

复制代码
message="hello blueking"
echo "<SOPS_VAR>message:$message</SOPS_VAR>

(示例代码)

输出日志中提取的全局变量,日志中形如 <SOPS_VAR>key:val</SOPS_VAR> 的变量会被提取到 log_outputs'key' 中,值为 val。

2、步骤二通过变量的方式引用第一步的输出

复制代码
echo ${log_outputs["message"]}

(示例代码)

3、执行效果

(步骤一)

(步骤二)

也可以点击作业平台执行任务详情链接查看执行结果

不同步骤传参的实现核心要素就是标准运维特有的标记符号"<SOPS_VAR>key:val</SOPS_VAR>",以及要把log_outputs勾选为变量。

扩展高级使用

  • 多个步骤需要跨步骤传参

如果多个步骤都需要使用到步骤传参(如步骤一的输出要给步骤二作为输入,步骤二的输出又需要给步骤三作为输入),那么输出参数里的KEY可以命名为log_outputs_xxx,避免重名。

如:



  • 一个步骤有多个变量需要被其他步骤引用

多个变量,只要key不同,只需要使用<SOPS_VAR>key:val</SOPS_VAR>的语法,就可以定义多个。

如:

复制代码
echo "<SOPS_VAR>message1:123</SOPS_VAR>"
echo "<SOPS_VAR>message2:456</SOPS_VAR>"
那么使用
${log_outputs['message1']}获取到123
${log_outputs['message2']}获取到456
  • 使用Python语法处理value,比如指定换行分隔符

    举例1:
    原始变量为: <SOPS_VAR>message:123|456|789</SOPS_VAR>

    引用时用换行替换竖线:
    ${'\n'.join(log_outputs_xxxx['message'].split('|'))}

    变量执行时,值为:
    123
    456
    789

    举例2:
    原始变量为:<SOPS_VAR>message:1.1.1.1@name1|2.2.2.2@name2|3.3.3.3@name3</SOPS_VAR>

    引用时,先用空格替换@,再用换行替换竖线:${'\n'.join(' '.join(log_outputs_xxxx['message'].split('@')).split('|'))}

    变量执行时,值为:
    1.1.1.1 name1
    2.2.2.2 name2
    3.3.3.3 name3

说明:适合产品版本 V6.1/V6.2/V7.0/V7.1

相关推荐
深圳市爱派派智能科技有限公司5 分钟前
“进迭时空 RISC-V 集群服务器 CSB1-N10SPK3:10 节点 K3,600 TOPS 绿色算力“
运维·服务器·risc-v·k3·进迭时空·集群服务器
☆凡尘清心☆5 分钟前
Linux运维故障排查速查命令清单
linux·运维·服务器
极客先躯9 分钟前
高级java每日一道面试题-2026年05月11日-实战篇[Docker]-如何容器化金融产品推荐系统?
java·运维·docker·容器·金融·高级面试·金融产品推荐系统
nvd1112 分钟前
GCP L4 Passthrough 负载均衡器“假死超时”深度排查复盘
运维·php·负载均衡
qeen8722 分钟前
【Linux】make/Makefile 自动化工具的介绍
linux·运维·服务器·自动化
朱容zr33313326 分钟前
为什么推荐使用自增主键?使用UUID作为主键的优缺点是什么?
java·运维·数据库·后端·mysql·面试·性能优化
HXDGCL26 分钟前
东莞市华创力科技:专业环形导轨工厂,助力自动化产线升级
运维·科技·自动化
艾莉丝努力练剑1 小时前
【Linux:动静态库】Linux 动静态库与可执行文件
linux·运维·服务器·学习·面试·文件系统·动静态库
nvd111 小时前
GCP 4层 外部网络负载均衡器深度解析
运维·网络·负载均衡
殷忆枫1 小时前
Linux 4G模块驱动适配实战:从手动绑定到自动识别
linux·运维·服务器