如果您在同一地域下有多个云资源需要绑定同一个标签,以方便您分类和精细化管理ECS资源,例如为ECS资源进行成本统计、运维监控等,则您可以使用OOS便捷地批量为该地域下的云资源绑定特定的标签。本文介绍如何通过OOS管理控制台批量绑定标签。
背景信息
通过创建系统运维管理 OOS(CloudOps Orchestration Service)的自定义模板,您可以批量为支持标签的资源绑定标签。云服务器ECS和其他云产品的诸多资源支持绑定标签,更多信息,请参见ECS支持标签的资源。本文以ECS实例为例,创建一个OOS自定义模板,该模板可以为同一地域下的ECS实例批量绑定标签owner:zhangsan
。
需要批量绑定标签的资源必须在同一地域下。
步骤一:创建自定义策略和RAM角色
为系统运维管理创建RAM服务角色OOSServiceRole,并为RAM角色添加权限。
使用主账号登录RAM控制台。
创建自定义策略OOSAutoBindTag。
具体操作,请参见创建自定义权限策略。本步骤使用的策略如下所示。
说明自定义策略OOSAutoBindTag以ECS实例为例,权限设置为
ecs:DescribeInstances
,您可以根据业务需求设置您需要的权限。例如,如果您需要为安全组批量绑定标签,将ecs:DescribeInstances
替换为ecs:DescribeSecurityGroups
。{ "Version": "1", "Statement": [ { "Action": [ "ecs:DescribeInstances", "ecs:TagResources" ], "Resource": "*", "Effect": "Allow" } ] }
创建RAM服务角色OOSServiceRole。
具体操作,请参见创建可信实体为阿里云服务的RAM角色。
将自定义策略授权给RAM服务角色。
具体操作,请参见为RAM角色授权。本步骤中将自定义策略OOSAutoBindTag授权给RAM服务角色OOSServiceRole。
为RAM服务角色OOSServiceRole授权系统策略AliyunOOSFullAccess。
步骤二:创建模板
登录系统运维管理OOS控制台。
在左侧导航栏,选择
。在页面左侧顶部,选择目标资源所在的资源组和地域。
单击创建模板。
选择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 }}'
单击创建模板,然后在对话框中设置自定义模板名称为
OOSAutoBindTag
。您也可以按需设置模板的标签、资源组和版本描述。
单击完成创建。
步骤三:执行模板
在左侧导航栏,选择
。在自定义任务模板页面,找到新建的自定义模板
OOSAutoBindTag
,单击对应操作列下的创建执行。保持默认设置或重新选择执行模式,然后单击下一步:设置参数。
参见参数说明,输入各项参数,然后单击下一步:确定。
参数
说明
示例
tags
选取已绑定ECS实例的标签。
owner:zhangsan
regionId
输入批量绑定标签的ECS实例所在地域。
cn-shanghai
OOSAssumeRole
填写OOS使用的RAM角色。
OOSServiceRole
单击创建开始执行。
执行完成后将自动跳转到执行详情页面,可查看执行结果。
说明若执行失败,您可以查看日志获取失败原因,以调整执行内容。
相关文档
您可以根据业务实际需要修改或解绑标签,具体操作,请参见解绑或删除标签或使用OOS批量修改标签值。
您可以通过标签精细化管理云资源,例如检索资源、访问控制、监控资源或自动化运维。具体操作,请参见标签最佳实践。
- 本页导读 (1)