批量添加标签,并关联Instances
[defaults]
SecretId=xx
SecretKey=yy
[params]
Limit = 100
MetricName = [
"CPUUsage",
"MemUsage",
"CvmDiskUsage"
]
[label]
label_endpoint=tag.tencentcloudapi.com
- 批量创建tag,并关联instance。
判断如果有的情况,不做创建。
import json
import xlrd
import configparser
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.tag.v20180813 import tag_client, models
class getlabels(object):
def __init__(self, SecretId, SecretKey):
self.SecretId = SecretId
self.SecretKey = SecretKey
def getlabels(self):
try:
cred = credential.Credential(self.SecretId, self.SecretKey)
httpProfile = HttpProfile()
httpProfile.endpoint = "tag.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = tag_client.TagClient(cred, "", clientProfile)
# req = models.CreateTagRequest()
req = models.DescribeTagKeysRequest()
# req = models.DescribeTagValuesRequest()
params = {
# "TagKeys": [ "子系统", "负责人", "系统", "到期时间" ],
"Limit": 100
}
req.from_json_string(json.dumps(params))
# resp = client.DescribeTagValues(req)
resp = client.DescribeTagKeys(req)
tags = json.loads(resp.to_json_string())
return tags.get('Tags')
except TencentCloudSDKException as err:
print(err.message)
class addlabels(object):
def __init__(self, SecretId, SecretKey):
self.SecretId = SecretId
self.SecretKey = SecretKey
def addlabels(self, param):
try:
cred = credential.Credential(self.SecretId, self.SecretKey)
httpProfile = HttpProfile()
httpProfile.endpoint = "tag.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = tag_client.TagClient(cred, "", clientProfile)
req = models.CreateTagRequest()
req.from_json_string(json.dumps(param))
resp = client.CreateTag(req)
# print(resp.to_json_string())
except TencentCloudSDKException as err:
print(err.message)
class cvmConnLabel(object):
def __init__(self, SecretId, SecretKey):
self.SecretId = SecretId
self.SecretKey = SecretKey
def cvmconnLabel(self, param):
try:
cred = credential.Credential(self.SecretId, self.SecretKey)
httpProfile = HttpProfile()
httpProfile.endpoint = "tag.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
client = tag_client.TagClient(cred, "", clientProfile)
req = models.AddResourceTagRequest()
req.from_json_string(json.dumps(param))
resp = client.AddResourceTag(req)
# print(resp.to_json_string())
except TencentCloudSDKException as err:
print(err.message)
if __name__ == '__main__':
config = configparser.ConfigParser()
config.read("setting.ini", encoding="utf-8")
label = getlabels(config.get("defaults", "SecretId"), config.get("defaults", "SecretKey"))
label_list = label.getlabels()
label_add = addlabels(config.get("defaults", "SecretId"), config.get("defaults", "SecretKey"))
conn_cvm = cvmConnLabel(config.get("defaults", "SecretId"), config.get("defaults", "SecretKey"))
data = xlrd.open_workbook(r'label_test.xls')
table = data.sheet_by_name('label')
nrows = table.nrows
ncols = table.ncols
title_value = table.row_values(0, start_colx=2, end_colx=None)
for row in range(1, nrows):
row_value = table.row_values(row, start_colx=0, end_colx=None)
for i in range(len(title_value)):
param = {}
param['TagKey'] = title_value[i]
param['TagValue'] = str(row_value[i+2])
if param['TagKey'] in label_list:
label_add.addlabels(param)
else:
# print("The key is not in the system")
continue
resource = "qcs::cvm:" + row_value[0] + ":uin/100016245427:instance/" + row_value[1]
param['Resource'] = resource
conn_cvm.cvmconnLabel(param)
- EXCEL label_test.xls
![label_test]()