文档

使用OOS批量绑定标签

更新时间:

如果您在同一地域下有多个云资源需要绑定同一个标签,以方便您分类和精细化管理ECS资源,例如为ECS资源进行成本统计、运维监控等,则您可以使用OOS便捷地批量为该地域下的云资源绑定特定的标签。本文介绍如何通过OOS管理控制台批量绑定标签。

背景信息

通过创建系统运维管理 OOS(CloudOps Orchestration Service)的自定义模板,您可以批量为支持标签的资源绑定标签。云服务器ECS和其他云产品的诸多资源支持绑定标签,更多信息,请参见ECS支持标签的资源。本文以ECS实例为例,创建一个OOS自定义模板,该模板可以为同一地域下的ECS实例批量绑定标签owner:zhangsan

重要

需要批量绑定标签的资源必须在同一地域下。

步骤一:创建自定义策略和RAM角色

系统运维管理创建RAM服务角色OOSServiceRole,并为RAM角色添加权限。

  1. 使用主账号登录RAM控制台

  2. 创建自定义策略OOSAutoBindTag。

    具体操作,请参见创建自定义权限策略。本步骤使用的策略如下所示。

    说明

    自定义策略OOSAutoBindTag以ECS实例为例,权限设置为ecs:DescribeInstances,您可以根据业务需求设置您需要的权限。例如,如果您需要为安全组批量绑定标签,将ecs:DescribeInstances替换为ecs:DescribeSecurityGroups

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:DescribeInstances",
                    "ecs:TagResources"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. 创建RAM服务角色OOSServiceRole。

  4. 将自定义策略授权给RAM服务角色。

    具体操作,请参见为RAM角色授权。本步骤中将自定义策略OOSAutoBindTag授权给RAM服务角色OOSServiceRole。

  5. 为RAM服务角色OOSServiceRole授权系统策略AliyunOOSFullAccess。

步骤二:创建模板

  1. 登录系统运维管理OOS控制台

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

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 单击创建模板

  5. 基本信息区域,设置自定义模板名称为OOSAutoBindTag

    您也可以单击展开更多设置,按需设置模板的标签资源组版本描述

  6. 选择YAML页签,在下方代码区域编写模板代码。代码示例如下所示。

    FormatVersion: OOS-2019-06-01
    Description: Tag Resources Without The Specified Tags
    Parameters:
      tags:
        Type: Json
        Description:
          en: The tags to select ECS instances.
          zh-cn: 选取已绑定ECS实例的标签。
        AssociationProperty: Tags
      regionId:
        Type: String
        Description:
          en: The region to select ECS instances.
          zh-cn: 输入批量绑定标签的ECS实例所在地域。
      OOSAssumeRole:
        Description:
          en: The RAM role to be assumed by OOS.
          zh-cn: OOS使用的RAM角色。
        Type: String
        Default: OOSServiceRole
    RamRole: OOSServiceRole
    Tasks:
      - Name: getInstancesByTags
        Action: 'ACS::ExecuteAPI'
        Description: ''
        Properties:
          Service: ECS
          API: DescribeInstances
          Parameters:
            Tags: '{{ tags }}'
            RegionId: '{{ regionId }}'
        Outputs:
          InstanceIds:
            Type: List
            ValueSelector: 'Instances.Instance[].InstanceId'
      - Name: getAllInstances
        Action: 'ACS::ExecuteAPI'
        Description: ''
        Properties:
          Service: ECS
          API: DescribeInstances
          Parameters:
            RegionId: '{{regionId}}'
        Outputs:
          InstanceIds:
            Type: List
            ValueSelector: 'Instances.Instance[].InstanceId'
      - Name: TagResources_ECS_Instances
        Action: 'ACS::ExecuteAPI'
        Description:
          zh-cn: 对没有绑定已选择的标签的ECS实例进行绑定标签
          en: 'tag ecs instances, which are without the specified tags.'
        Properties:
          Service: ECS
          API: TagResources
          Parameters:
            Tags: '{{ tags }}'
            RegionId: '{{regionId}}'
            ResourceType: Instance
            ResourceIds:
              - '{{ACS::TaskLoopItem}}'
        Loop:
          MaxErrors: 100%
          Concurrency: 20
          Items:
            'Fn::Difference':
              - '{{ getAllInstances.InstanceIds }}'
              - '{{ getInstancesByTags.InstanceIds }}'
    Outputs:
      InstanceIds:
        Type: List
        Value:
          'Fn::Difference':
            - '{{ getAllInstances.InstanceIds }}'
            - '{{ getInstancesByTags.InstanceIds }}'
  7. 单击创建模板,完成模板创建。

步骤三:执行模板

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

  2. 自定义任务模板页面,找到新建的自定义模板OOSAutoBindTag,单击对应操作列下的创建执行

  3. 保持默认设置或重新选择执行模式,然后单击下一步:设置参数

  4. 参见参数说明,输入各项参数,然后单击下一步:确定

    参数

    说明

    示例

    tags

    选取已绑定ECS实例的标签。

    owner:zhangsan

    regionId

    输入批量绑定标签的ECS实例所在地域。

    cn-shanghai

    OOSAssumeRole

    填写OOS使用的RAM角色。

    OOSServiceRole

  5. 单击创建开始执行。

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

    说明

    若执行失败,您可以查看日志获取失败原因,以调整执行内容。

相关文档

  • 本页导读 (1)
文档反馈