All Products
Search
Document Center

Elastic Compute Service:Use OOS to modify a tag value of multiple resources

Last Updated:Dec 28, 2023

This topic describes how to modify a tag value of multiple resources at a time by using an CloudOps Orchestration Service (OOS) custom template.

Prerequisites

A tag is added to resources. For more information, see Create or add a tag.

Background information

In this topic, a custom template is created in OOS. This template can be used to modify a tag value of hundreds of ECS instances at a time. In this example, a tag value of the ECS instances is changed from OldTagValue to NewTagValue. The corresponding tag key-value pair is changed from TagKey:OldTagValue to TagKey:NewTagValue.

Note
  • You can use the OOS custom template to modify a tag value for up to 1,000 resources at a time. If the number of resources is greater than 1,000, you must execute the template multiple times.

  • You can use the OOS custom template to modify the tag values of any resources that support tagging in the same region. You can modify the API operations in the template to make it applicable to various resources. For more information about resources that support tagging, see Overview.For information about the resources that OOS supports, see List of supported cloud services.

Step 1: Create a template

You can perform the following steps to create an OOS custom template to modify a tag value of multiple resources.

  1. Log on to the Operation Orchestration Service console.

  2. In the upper-left corner of the top navigation bar, select a region. 地域

  3. In the left-side navigation pane, click My Templates.

  4. Click Create Template.

  5. In the Basic Information section, enter a name in the Template Name field.

    You can also click Show More and configure Tag, Resource Group, and Resource Group based on your needs.

  6. Click the JSON tab and write code in the code editor. Example code:

    {
        "Description": "Modify a tag value for multiple resources",
        "FormatVersion": "OOS-2019-06-01",
        "Parameters": {
            "operateId": {
                "Description": "Define the operation ID",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            },
            "tagKey": {
                "Description": "Current tag key",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            },
            "tagValue": {
                "Description": "Current tag value",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            },
            "newTagValue": {
                "Description": "New tag value",
                "Type": "String",
                "MinLength": 1,
                "MaxLength": 64
            }
        },
        "Tasks": [
            {
                "Name": "DescribeInstances_ECS",
                "Action": "ACS::ExecuteAPI",
                "Description": {
                    "zh-cn": "Filter ECS instances by tag",
                    "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": "Update the tag of ECS instances",
                    "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. Click Create Template.

Step 2: Execute the template

You can perform the following steps to execute the template that you created in Step 1: Create a template to modify a tag value of multiple resources.

  1. In the left-side navigation pane, click My Templates.

  2. Find the template that you created in Step 1 and click Create Execution in the Actions column.

  3. On the Create page, enter an execution description and select an execution mode in the Basic Information step. Then, click Next: Parameter Settings.

  4. In the Parameter Settings step, configure parameters and click Next: OK.

    The following section describes the parameters.

    • operateId: the operation ID, which is used to identify each operation. You can customize an operation ID.

    • tagKey: the key of the tag whose value you want to modify, which is TagKey in this example.

    • tagValue: the tag value to be modified, which is OldTagValue in this example.

    • newTagValue: the new tag value, which is NewTagValue in this example.

  5. Click Create. The execution details page appears. You can view the execution results.

    Note

    If the execution fails, you can check the logs for the cause of the failure and make adjustments accordingly.