【运维自动化-标准运维】变量的高级用法

在全局变量使用篇里了解到了各类变量的基本用法,实际在很多场景下,需要对变量进行处理,这就是标准运维里变量的高级用法。只要处理变量符合python语法,在一行代码语句的长度内可以执行的代码,系统均是可以进行渲染的。

  • 在变量b的字典键(key)中引用变量a
css 复制代码
若${a}="zone"已经定义了,如果要在${b}中的字典键(key)引用${a}的话,使用${b["%s_a" % a]}的方式引用的话,则会被渲染为${b["zone_a"]}
  • 计算一个60分钟以后的时间格式变量

比如在时间配置的输入参数中,我们想获取脚本当前执行的时间,以及60分钟以后的时间。可以参考下面的用法:

perl 复制代码
当前时间:${_system.task_start_time}
60分钟以后的时间:${(datetime.datetime.strptime(_system.task_start_time, "%Y-%m-%d %H:%M:%S")+datetime.timedelta(minutes=60)).strftime("%Y-%m-%d %H:%M:%S")}
  • 使用if-else 或 if-elif-else的语法

正常python语法是不支持一行带if elif else的,因此通过两(多)个if else的方式进行。

ruby 复制代码
${"ts" if zone=="450" else "ts2" if zone == "820" else "autopath"}
  • 在变量中,空格替换成逗号

如果你有一个变量 a="10166 10167 10170",想把空格分隔符,替换成逗号分隔符,可以这样写:

css 复制代码
','.join(i for i in a.split())

只需要将其用${}包裹起来,即可引用:

css 复制代码
${','.join(i for i in a.split())}
  • IP变量,如果想转成一个列表格式,可以通过for语句

如果你有一个IP类型的变量a="1.1.1.1,2.2.2.2,3.3.3.3" 想把它转成"1.1.1.1","2.2.2.2","3.3.3.3"的列表格式。 可以通过转换成for语句,使用分隔符替换的原理,拼接字符串,以便于形成列表格式

shell 复制代码
${'["'+'","'.join(str(i) for i in a.split(','))+'"]'}
  • 对象变量,如果输入参数为对象(有多个属性),循环迭代遍历,可使用表格类型的变量(此条用法由社区核心用户kevin贡献)

表格变量配置:${IPS} 变量使用:可以用脚本把表格的行数计算出来,作循环结束判断,用_loop-1下标调用:

bash 复制代码
${IPS.ip[_loop-1]},${IPS.idc[_loop-1]}

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

相关推荐
SaaS_Product19 小时前
企业云盘收费标准主要取决于什么?企业云盘价格到底怎么算?
大数据·云计算·saas·onedrive
2401_861678621 天前
阿里云远程连接
阿里云·云计算
皮皮虾❀1 天前
阿里云上云迁移服务商选型+官方资质核验+ACE认证团队一体化实战:从“买到假代理”到“官网可查认证服务商承接迁移项目
阿里云·云计算
怪奇云呼军2 天前
知识库也会注入指令?闪电智能VoiceAgent 如何防住 Prompt Injection
人工智能·python·算法·云计算·音视频
jikemaoshiyanshi2 天前
企业搭建大模型网关与智能路由体系,如何实现精细化推理分发?——AWS 双层网关架构适配规模化业务落地
架构·云计算·aws
径硕科技JINGdigital2 天前
AI 训练时 GPU 利用率低,哪些云上高性能存储方案更适合优化训练成本?AWS 按 I/O 瓶颈分层选型
人工智能·云计算·aws
仓储管理员20252 天前
不同业务场景下,如何匹配适配的WMS系统?
大数据·运维·云计算·精选
IT爱学堂2 天前
2025云计算全栈工程师全日制课程V16百度网盘下载
云计算
baidu_259339573 天前
智慧消防管理系统平台(基于物联网与大数据的城市消防安全解决方案)
大数据·人工智能·物联网·云计算·智慧消防·力安科技·gdliontech.cn
众人皆醒我独醉3 天前
源码导读:一张地图看懂 KServe 仓库
面试·云计算·gpu