jsonobject修改key的值_基于OOS批量修改资源标签值

场景

当资源上有个标签键: 部门,标签值:零售,由于部门资源整合要把标签(键: 部门,值:零售)修改为标签(键: 部门,值:新零售),如何快速批量修改标签呢?

背景信息

运维编排服务OOS通过模板定义您需要编排的运维任务。模板内容支持YAML和JSON两种格式,模版分为公共模版和自定义模版两种类型。为了方便您快速使用OOS,OOS提供了公共模板供您直接使用和参考。。在使用模板前您需要仔细审查模板所要执行的运维任务,并优先在测试环境观察使用效果。

您也可以编写自定义模板来编写您所需要的运维任务。更多详情,请参见模板结构。本文中的TagResourcesFilterByTags是自定义模板

操作步骤

登录ECS管理控制台。
在左侧导航栏,选择 运维与监控 > 运维编排
在顶部状态栏处,选择地域
选择 我的模板 点击 创建模版
选择JSON
以下示例是针对ecs实例及redis实例进行标签值的更新
operateId : 操作ID,区分每次操作使用
tagKey:标签键,用来过滤资源
tagValue:标签值,用来过滤资源
tagKey:标签键,要修改目标标签键
newTagValue:新标签值,要修改后的标签值

{ "Description": "根据标签查找资源并更新标签", "FormatVersion": "OOS-2019-06-01", "Parameters": { "operateId": { "Description": "操作ID,调用者自定义", "Type": "String", "MinLength": 1, "MaxLength": 64 }, "tagKey": { "Description": "当前key", "Type": "String", "MinLength": 1, "MaxLength": 64 }, "tagValue": { "Description": "当前value", "Type": "String", "MinLength": 1, "MaxLength": 64 }, "newTagValue": { "Description": "更新后value", "Type": "String", "MinLength": 1, "MaxLength": 64 } }, "Tasks": [ { "Name": "DescribeInstances_ECS", "Action": "ACS::ExecuteAPI", "Description": { "zh-cn": "通过标签过滤ECS实例", "en": "filter ecs instances by tags" }, "Properties": { "Service": "ECS", "API": "DescribeInstances", "AutoPaging": true, "Parameters": { "Tags": [ { "Key": "{{ tagKey }}", "Value": "{{ tagValue }}" } ] } }, "Outputs": { "Instances": { "Type": "List", "ValueSelector": "Instances.Instance[].InstanceId" } } }, { "Name": "TagResources_ECS_Instances", "Action": "ACS::ExecuteAPI", "Description": { "zh-cn": "更新ECS实例标签", "en": "tag ecs instances" }, "Properties": { "Service": "ECS", "API": "TagResources", "Parameters": { "Tags": [ { "Key": "{{ tagKey }}", "Value": "{{ newTagValue }}" } ], "ResourceType": "Instance", "ResourceIds": [ "{{ACS::TaskLoopItem}}" ] } }, "Loop": { "MaxErrors": "100%", "Concurrency": 20, "Items": "{{DescribeInstances_ECS.Instances}}" } }, { "OnError": "ACS::NEXT", "Name": "DescribeInstances_REDIS", "Action": "ACS::ExecuteApi", "Description": { "zh-cn": "通过标签过滤REDIS实例", "en": "filter redis(kvstore) instances by tags" }, "Properties": { "Service": "R-kvstore", "API": "DescribeInstances", "AutoPaging": true, "Parameters": { "Tags": [ { "Key": "{{ tagKey }}", "Value": "{{ tagValue }}" } ] } }, "Outputs": { "Instances": { "Type": "List", "ValueSelector": "Instances.KVStoreInstance[].InstanceId" } } }, { "Name": "TagResources_REDIS_Instances", "Action": "ACS::ExecuteAPI", "Description": { "zh-cn": "更新REDIS实例标签", "en": "tag redis instances" }, "Properties": { "Service": "R-kvstore", "API": "TagResources", "Parameters": { "Tags": [ { "Key": "{{ tagKey }}", "Value": "{{ newTagValue }}" } ], "ResourceType": "Instance", "ResourceIds": [ "{{ACS::TaskLoopItem}}" ] } }, "Loop": { "MaxErrors": "100%", "Concurrency": 20, "Items": "{{DescribeInstances_REDIS.Instances}}" } } ], "Outputs": {}}

创建执行:

c22ca78613010c324744a090342b9690.png


执行详情:

3c8d7e7d0703dcaada09b9eb5190e919.png

当执行状态显示成功,表示运维任务已完成。
当执行状态显示失败,您可以单击操作列下的详情查看执行日志,并根据日志信息分析和调整执行内容。

可以根据本文的代码修改为自己需要的cases。

作者:洛小蒙

本文为云栖社区原创内容,未经允许不得转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值