使用OOS批量修改标签值

通过创建系统运维管理(OOS)自定义模板,您可以批量修改同一地域下的数百个资源的同一标签的标签值。

前提条件

已为ECS实例绑定一个标签,详情请参见创建并绑定自定义标签

背景信息

本文以ECS实例为例,创建一个OOS自定义模板,该模板支持一次性修改数百台ECS实例的同一标签值。ECS实例绑定的源标签键值对为TagKey:OldTagValue,修改后将变为TagKey:NewTagValue

说明
  • 批量修改资源的数量上限为1000,资源数量大于1000时需要多次执行自定义模板。

  • OOS自定义模板可以修改同一地域下任何支持绑定标签的资源,您只需要根据您的业务需求修改相应接口,支持绑定标签的资源,详情请参见支持标签的云服务OOS支持的资源,详情请参见OOS支持的云产品列表

步骤一:创建模板

您可以参考以下步骤,创建批量修改标签值的OOS自定义模板。

  1. 登录OOS控制台

  2. 在左侧导航栏,选择自动化任务 > 自定义任务模板

  3. 在顶部菜单栏左上角处,选择地域。

  4. 单击创建模板

  5. 基本信息区域,输入模板名称。

  6. 单击JSON页签,编写模板代码。

    模板代码示例:

    {
        "Description": "批量修改资源的标签值",
        "FormatVersion": "OOS-2019-06-01",
        "Parameters": {
            "operateId": {
                "Description": "自定义您的操作ID",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            },
            "tagKey": {
                "Description": "当前标签键",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            },
            "tagValue": {
                "Description": "当前标签值",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            },
            "newTagValue": {
                "Description": "修改后的标签值",
                "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}}"
                }
            }
        ],
        "Outputs": {}
    }
  7. 单击创建模板

步骤二:执行模板

您可以参考以下步骤,执行步骤一:创建模板创建的模板,批量修改标签值。

  1. 自定义任务模板页面,找到步骤一:创建模板创建的模板,单击操作列的创建执行

  2. 填写执行描述,并选择执行模式,然后单击下一步:设置参数

  3. 输入各项参数,然后单击下一步:确定

    参数说明如下:

    • operateId:操作ID,用于区分每次操作,可自定义输入。

    • tagKey:当前标签键,本示例为TagKey

    • tagValue:当前标签值,即修改前的标签值,本示例为OldTagValue

    • newTagValue:新标签值,即修改后的标签值,本示例为NewTagValue

  4. 单击创建

    执行完成后将自动跳转到执行详情页面,可查看执行结果。

    说明

    如果执行失败,您可以通过查看执行日志来定位失败原因。