0.准备工作
使用本代码请先进行子用户创建并授权云API与轻量应用服务器全部权限
请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限
前往创建子用户:https://console.cloud.tencent.com/cam
1.SDK下载
请确保Python版本为3.6+
查看Python版本
python3 -V
安装腾讯云Python SDK
pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python
安装pandas
pip install -i https://mirrors.tencent.com/pypi/simple/ pandas
2.代码部分
import json
import pandas as pd
from time import time, strftime, localtime
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.lighthouse.v20200324 import lighthouse_client, models
start = time()
aria = ['ap-beijing', 'ap-chengdu', 'ap-guangzhou', 'ap-hongkong', 'ap-shanghai', 'ap-singapore',
'na-siliconvalley','eu-moscow', 'ap-tokyo', 'ap-nanjing', 'ap-mumbai', 'eu-frankfurt']
aria_zh = ['北京', '成都', '广州', '中国香港', '上海', '新加坡', '硅谷', '莫斯科', '东京', '南京', '孟买', '法兰克福']
# 此处添加SecretId 与 SecretKey
cred = credential.Credential("SecretId", "SecretKey")
httpProfile = HttpProfile()
httpProfile.endpoint = "lighthouse.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
lh_id = []
lh_name = []
lh_state = []
lh_aria = []
lh_zone = []
lh_cpu = []
lh_memory = []
lh_os = []
lh_bandwidth = []
lh_public_ip = []
lh_private_ip = []
lh_disk_size = []
lh_created_time = []
lh_expired_time = []
lh_tft = []
lh_tfu = []
lh_tfr = []
print('代码运行中 预计30s导出完毕')
for i in range(12):
client = lighthouse_client.LighthouseClient(cred, aria[i], clientProfile)
# 获取实例信息
try:
# 查看所有实例
req = models.DescribeInstancesRequest()
params = {}
req.from_json_string(json.dumps(params))
resp = client.DescribeInstances(req)
response = json.loads(resp.to_json_string())
# print(response)
# 实例详细信息
# 判断地域是否含有实例
if response['TotalCount'] > 0:
# print(aria_zh[i] + '实例数为' + str(response['TotalCount']))
# 提取返回的json信息
for ii in range(response['TotalCount']):
lh_id.append(response['InstanceSet'][ii]['InstanceId'])
lh_name.append(response['InstanceSet'][ii]['InstanceName'])
lh_state.append(response['InstanceSet'][ii]['InstanceState'])
lh_aria.append(aria_zh[i])
zone = response['InstanceSet'][ii]['Zone']
zone_rep = zone.replace('{0}-'.format(aria[i]), '')
lh_zone.append(zone_rep)
lh_cpu.append(response['InstanceSet'][ii]['CPU'])
lh_memory.append(response['InstanceSet'][ii]['Memory'])
lh_os.append(response['InstanceSet'][ii]['OsName'])
lh_bandwidth.append(response['InstanceSet'][ii]['InternetAccessible']['InternetMaxBandwidthOut'])
lh_public_ip.append(response['InstanceSet'][ii]['PublicAddresses'][0])
lh_private_ip.append(response['InstanceSet'][ii]['PrivateAddresses'][0])
lh_disk_size.append(response['InstanceSet'][ii]['SystemDisk']['DiskSize'])
lh_created_time.append(response['InstanceSet'][ii]['CreatedTime'])
lh_expired_time.append(response['InstanceSet'][ii]['ExpiredTime'])
# 查看流量包
try:
req1 = models.DescribeInstancesTrafficPackagesRequest()
params1 = {"InstanceIds": [response['InstanceSet'][ii]['InstanceId']]}
req1.from_json_string(json.dumps(params1))
resp1 = client.DescribeInstancesTrafficPackages(req1)
response1 = json.loads(resp1.to_json_string())
tf = response1['InstanceTrafficPackageSet'][0]['TrafficPackageSet'][0]
# 总流量
tft = str(round(tf['TrafficPackageTotal'] / 1073741824, 2))
lh_tft.append(tft)
# 已用流量
tfu = str(round(tf['TrafficUsed'] / 1073741824, 2))
lh_tfu.append(tfu)
# 剩余流量
tfr = str(round(tf['TrafficPackageRemaining'] / 1073741824, 2))
lh_tfr.append(tfr)
except TencentCloudSDKException as err:
print(err)
except TencentCloudSDKException as err:
print(err)
dataframe = pd.DataFrame({'ID': lh_id, '实例名': lh_name, '状态':lh_state, '地域': lh_aria, '可用区': lh_zone,
'CPU(核数)': lh_cpu, '内存(GB)': lh_memory, '操作系统': lh_os, '带宽(Mbps)': lh_bandwidth,
'IPv4公网IP': lh_public_ip, 'IPv4内网IP': lh_private_ip, '系统盘大小(GB)': lh_disk_size,
'创建时间': lh_created_time, '到期时间': lh_expired_time, '流量包大小(GB)': lh_tft, '流量包已用流量(GB)': lh_tfu,
'流量包剩余流量(GB)': lh_tfr})
csv_name = 'lh_{0}.csv'.format(strftime('%Y-%m-%d %H_%M_%S', localtime()))
dataframe.to_csv(csv_name, encoding='utf_8_sig')
print('导出完毕 文件名为{0}'.format(csv_name))
end = time()
print('本次代码执行共耗时:', round(end - start, 2), 's')
打开生成的文件 我们可以看到所有的轻量应用服务器配置均已被导出
(部分涉及隐私已以’” * “替代,请以实际导出文件为准)
ID | 实例名 | 状态 | 地域 | 可用区 | CPU(核数) | 内存(GB) | 操作系统 | 带宽(Mbps) | IPv4公网IP | IPv4内网IP | 系统盘大小(GB) | 创建时间 | 到期时间 | 流量包大小(GB) | 流量包已用流量(GB) | 流量包剩余流量(GB) | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | lhins-d******* | 轻量2c4g8m免费升配 | RUNNING | 北京 | 3 | 4 | 4 | Windows Server 2019 DataCenter 64bitCN | 8 | 81.*.*.* | 10.0.8.12 | 80 | 2021-02-22T05:30:46Z | 2024-08-22T05:30:46Z | 1200 | 0.39 | 1199.61 |
1 | lhins-4******* | 参与轻量征文活动拿好礼 | RUNNING | 中国香港 | 3 | 2 | 2 | CentOS 7.9 64bit | 30 | 43.*.*.* | 10.0.8.12 | 30 | 2022-04-13T02:04:52Z | 2022-05-13T02:07:38Z | 1024 | 0.18 | 1023.82 |
2 | lhins-1******* | 参与轻量征文活动拿好礼 | RUNNING | 中国香港 | 3 | 2 | 2 | CentOS 7.9 64bit | 30 | 43.*.*.* | 10.0.8.14 | 30 | 2022-04-13T02:04:45Z | 2022-05-13T02:08:13Z | 1024 | 0.23 | 1023.77 |
3 | lhins-j******* | 为居家程序员「送服」 | RUNNING | 上海 | 5 | 4 | 4 | Windows Server 2019 DataCenter 64bitCN | 8 | 124.*.*.* | 10.0.16.8 | 80 | 2022-03-15T10:35:26Z | 2022-04-15T10:35:26Z | 1200 | 0.16 | 1199.84 |
4 | lhins-j******* | 轻量无忧计划 | RUNNING | 上海 | 4 | 1 | 2 | CentOS 7.6 64bit | 5 | 49.*.*.* | 10.0.12.7 | 50 | 2021-10-23T11:24:58Z | 2025-08-23T11:24:58Z | 500 | 0.07 | 499.93 |
5 | lhins-n******* | 参与轻量征文活动拿好礼 | RUNNING | 新加坡 | 1 | 1 | 1 | Ubuntu Server 20.04 LTS 64bit | 30 | 43.*.*.* | 10.0.0.10 | 25 | 2022-01-17T08:01:13Z | 2022-06-17T08:01:13Z | 1024 | 0.01 | 1023.99 |
6 | lhins-1******* | 参与轻量征文活动拿好礼 | RUNNING | 硅谷 | 2 | 2 | 2 | CentOS 7.6 64bit | 30 | 43.*.*.* | 10.0.4.10 | 30 | 2022-01-17T08:01:20Z | 2022-06-17T08:01:20Z | 1024 | 0 | 1024 |
7 | lhins-6******* | 参与轻量征文活动拿好礼 | RUNNING | 东京 | 2 | 1 | 2 | Ubuntu Server 20.04 LTS 64bit | 30 | 43.*.*.* | 10.0.4.6 | 50 | 2021-11-24T16:57:44Z | 2022-11-24T16:57:44Z | 2048 | 1.01 | 2046.99 |
8 | lhins-0******* | 参与轻量征文活动拿好礼 | RUNNING | 孟买 | 1 | 2 | 2 | Ubuntu Server 20.04 LTS 64bit | 30 | 129.*.*.* | 10.0.0.9 | 30 | 2022-03-29T05:14:20Z | 2022-06-29T05:14:20Z | 1024 | 0.49 | 1023.51 |
9 | lhins-b******* | 参与轻量征文活动拿好礼 | RUNNING | 法兰克福 | 1 | 1 | 1 | CentOS 7.6 64bit | 30 | 162.*.*.* | 10.0.0.9 | 25 | 2021-11-20T12:30:52Z | 2022-06-20T12:30:52Z | 1024 | 0.71 | 1023.29 |