您可以使用资源编排服务ROS(Resource Orchestration Service)创建资源栈,在资源栈中创建资源,并同时为资源绑定标签,方便日后的运维管理。支持为多个云资源批量绑定或更新标签,提升运维效率。
为多个云资源绑定相同标签
如下将提供一个示例,使用资源栈创建专有网络VPCmytest-vpc
和交换机VSwitchmytest-vsw-h
,并同时为VPC和VSwitch绑定app:test
标签。
- 编写模板。
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"VPC": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": "mytest-vpc"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VpcId": { "Ref": "VPC" },
"ZoneId": "cn-hangzhou-h",
"CidrBlock": "172.16.0.0/24",
"VSwitchName": "mytest-vsw-h"
}
}
}
}
模板说明:创建一个VPC和一个VSwitch。
- 创建资源栈,并为VPC和VSwitch绑定标签
app:test
。# pip install aliyun-python-sdk-ros
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkros.request.v20190910.CreateStackRequest import CreateStackRequest
client = AcsClient(
'<AccessKeyId>',
'<AccessKeySecret>',
'cn-hangzhou',
)
template = '''
<Template>
'''
req = CreateStackRequest()
req.set_StackName('vpc-vswitch-test')
req.set_TemplateBody(template)
req.set_TimeoutInMinutes(10)
req.set_Tags([{'Key': 'app', 'Value': 'test'}])
ret = client.do_action_with_exception(req)
print(ret)
参数说明:
- <AccessKeyId>和<AccessKeySecret>请替换为您实际的AccessKey ID 和AccessKey Secret。
- <Template>请替换为步骤1中的模板。
- 可选:登录专有网络管理控制台,查看VPC和VSwitch绑定的标签。
当VPC和VSwitch都绑定了标签app:test
,表示操作成功。
为多个云资源绑定不同标签
如下将提供一个示例,使用资源栈创建专有网络VPC
mytest-vpc
和交换机VSwitch
mytest-vsw-h
,为VPC和VSwitch绑定通用标签
app:test
,除此之外还要为VSwitch绑定特定标签
group:test
。最终效果为:
- VPC
mytest-vpc
绑定的标签:app:test
。
- VSwitch
mytest-vsw-h
绑定的标签:app:test
和group:test
。
- 编写模板。
{
"ROSTemplateFormatVersion": "2015-09-01",
"Resources": {
"VPC": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": "mytest-vpc"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VpcId": { "Ref": "VPC" },
"ZoneId": "cn-hangzhou-h",
"CidrBlock": "172.16.0.0/24",
"VSwitchName": "mytest-vsw-h",
"Tags": [{ "Key": "group", "Value": "test" }]
}
}
}
}
模板说明:创建一个VPC和一个VSwitch,并为VSwitch绑定特定标签group:test
。
- 创建资源栈,并为VPC和VSwitch绑定通用标签
app:test
。# pip install aliyun-python-sdk-ros
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkros.request.v20190910.CreateStackRequest import CreateStackRequest
client = AcsClient(
'<AccessKeyId>',
'<AccessKeySecret>',
'cn-hangzhou',
)
template = '''
<Template>
'''
req = CreateStackRequest()
req.set_StackName('vpc-vswitch-test')
req.set_TemplateBody(template)
req.set_TimeoutInMinutes(10)
req.set_Tags([{'Key': 'app', 'Value': 'test'}])
ret = client.do_action_with_exception(req)
print(ret)
参数说明:
- <AccessKeyId>和<AccessKeySecret>请替换为您实际的AccessKey ID 和AccessKey Secret。
- <Template>请替换为步骤1中的模板。
- 可选:登录专有网络管理控制台,查询VPC和VSwitch绑定的标签。
当VPC绑定的标签为app:test
,VSwitch绑定的标签为app:test
和group:test
时,表示操作成功。
为多个云资源更新标签
如下将提供一个示例,在为多个云资源绑定相同标签的基础上,将VPCmytest-vpc
和VSwitchmytest-vsw-h
已绑定的标签app:test
更新为app:normal
。
- 创建资源栈,并为VPC和VSwitch绑定新标签
app:normal
。# pip install aliyun-python-sdk-ros
import json
from aliyunsdkcore.client import AcsClient
from aliyunsdkros.request.v20190910.UpdateStackRequest import UpdateStackRequest
client = AcsClient(
'<AccessKeId>',
'<AccessKeySecret>',
'cn-hangzhou',
)
template = '''
<Template>
'''
req = UpdateStackRequest()
req.set_StackId('<StackId>')
req.set_TemplateBody(template)
req.set_Tags([{'Key': 'app', 'Value': 'normal'}])
ret = client.do_action_with_exception(req)
print(ret)
参数说明:
- <AccessKeyId>和<AccessKeySecret>请替换为您实际的AccessKey ID 和AccessKey Secret。
- <Template>请替换为为多个云资源绑定相同标签中的模板。
- 可选:登录专有网络管理控制台,查询VPC和VSwitch绑定的标签。
当VPC和VSwitch都绑定了新标签app:normal
时,表示操作成功。