通过创建OOS自定义模板,您可以一次修改数百个资源的同一标签的标签值。

前提条件

已为资源绑定一个标签,详情请参见绑定标签。本示例中ECS实例的标签键值对为TagKey:OldTagValue

背景信息

本文以ECS实例为例,创建一个OOS自定义模板,该模板支持一次性修改数百台ECS实例的同一标签值。本示例中,ECS实例的源标签键值对为TagKey:OldTagValue,修改后将变为TagKey:NewTagValue。
说明
  • 批量修改资源的数量上限为1000,资源数量大于1000时需要多次执行自定义模板。
  • OOS自定义模板可以修改任何支持绑定标签的资源,您只需要根据您的业务需求修改相应接口,支持绑定标签的资源,详情请参见标签概述OOS支持的资源,详情请参见OOS支持的云产品列表

操作步骤

  1. 登录运维编排服务OOS管理控制台
  2. 在顶部状态栏左上角处,选择地域。
  3. 在左侧导航栏,单击我的模板
  4. 单击创建模板
    1. 选择空白模板,单击选取
    2. 单击JSON,编辑模板,并在右侧填写模板名称TagResourcesFilterByTags,模板编辑完成后单击创建模板

      本文中模板代码示例如下所示。

      {
          "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": {}
      }

      参数说明:

      • operateId :操作ID,区分每次操作使用。
      • tagKey:当前标签键,用来过滤资源。
      • tagValue:当前标签值,用来过滤资源。
      • newTagValue:新标签值,更新后的标签值。

      权限说明:

      • DescribeInstances:根据源标签过滤资源。
      • TagResources:为指定的资源创建或绑定标签。
  5. 在左侧导航栏,单击我的模板,找到新建的自定义模板TagResourcesFilterByTags,在操作列,单击创建执行
    创建执行
  6. 保持默认设置或重新选择执行模式,然后单击下一步:设置参数
  7. 将标签键TagKey对应的标签值OldTagValue修改为NewTagValue,然后单击下一步:确定
    确定执行
  8. 在确定页面,单击创建执行
  9. 在执行详情页面右侧,单击执行结果查看信息:
    • 如果执行状态显示成功,表示成功修改标签值。

      执行成功
    • 如果执行状态显示失败,您可以查看状态信息和执行日志来调整执行内容。

      执行失败