Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >利用Python调用云Api实现批量绑定轻量应用服务器密钥

利用Python调用云Api实现批量绑定轻量应用服务器密钥

原创
作者头像
小宇-xiaoyu
发布于 2022-03-04 13:06:46
发布于 2022-03-04 13:06:46
1.5K10
代码可运行
举报
文章被收录于专栏:玩转Lighthouse.玩转Lighthouse.
运行总次数:0
代码可运行

上一次我们学到了如何批量创建密钥 这次我们来进行批量绑定密钥 上集回顾:利用Python调用云Api实现多地域同步创建轻量应用服务器密钥并保存到本地

0.准备工作

使用本代码请先进行子用户创建并授权云API轻量应用服务器全部权限

请注意 为了保障您的账户以及云上资产的安全 请谨慎保管SecretId 与 SecretKey 并定期更新 删除无用权限

前往创建子用户:https://console.cloud.tencent.com/cam

1.SDK下载

请确保Python版本为3.6+

查看Python版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python3 -V

安装腾讯云Python SDK

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python

2.代码部分

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import json
from time import strftime, localtime, time
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']
# 此处添加SecretId 与 SecretKey
cred = credential.Credential("SecretId", "SecretKey")

httpProfile = HttpProfile()
httpProfile.endpoint = "lighthouse.tencentcloudapi.com"
clientProfile = ClientProfile()
clientProfile.httpProfile = httpProfile
keyname = input('keyname=')

for i in range(12):
    client = lighthouse_client.LighthouseClient(cred, aria[i], clientProfile)
    # 获取密钥id
    try:

        req0 = models.DescribeKeyPairsRequest()
        params0 = {
            "Filters": [
                {
                    "Name": "key-name",
                    "Values": [keyname]
                }
            ]
        }
        req0.from_json_string(json.dumps(params0))

        resp0 = client.DescribeKeyPairs(req0)
        response0 = json.loads(resp0.to_json_string())

        # print(response0)
        keyid = response0['KeyPairSet'][0]['KeyId']
        print('获取密钥ID成功:'+keyid,'该密钥所属地域:'+aria[i],'--------------------------------',sep='\n')
    except TencentCloudSDKException as err:
        print(err)
    # 获取实例信息
    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)
        # 实例详细信息
        basic = response['InstanceSet']
        # 判断地域是否含有实例
        if response['TotalCount'] > 0:
            print(aria[i] + '实例数为' + str(response['TotalCount']))
            # 提取返回的json信息
            for ii in range(response['TotalCount']):
                ii1 = basic[ii]
                id = ii1['InstanceId']
                name = ii1['InstanceName']
                ip = ii1['PublicAddresses'][0]
                zone = ii1['Zone']
                ct = ii1['CreatedTime']
                et = ii1['ExpiredTime']
                os = ii1['OsName']
                state = ii1['InstanceState']
                login = ii1['LoginSettings']['KeyIds']
                if len(login) == 0:
                    login_staus = '否'
                else:
                    login_staus = '是'
                # 查看流量包
                try:
                    req1 = models.DescribeInstancesTrafficPackagesRequest()

                    params1 = {
                        "InstanceIds": [id]
                    }
                    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))
                    # 已用流量
                    tfu = str(round(tf['TrafficUsed'] / 1073741824, 2))
                    # 剩余流量
                    tfr = str(round(tf['TrafficPackageRemaining'] / 1073741824, 2))
                    # 已用流量%
                    percent_tfu = round(
                        round(tf['TrafficUsed'] / 1073741824, 2) / round(tf['TrafficPackageTotal'] / 1073741824,
                                                                         2) * 100, 3)
                    # 剩余流量%
                    percent_tfr = 100 - percent_tfu
                    # 判断实例已用流量是否达到预设值(1即为1%if percent_tfu > 1.000:
                        print('IP为:' + ip + '实例Id为: ' + id + '的流量已达到预设值',
                              '时间:' + strftime('%Y-%m-%d %H:%M:%S', localtime()), sep='\n')

                except TencentCloudSDKException as err:
                    print(err)

                print('--------------------------------',
                      'id: ' + id,
                      '实例名称:' + name,
                      '实例状态: ' + state,
                      'ip: ' + ip,
                      '实例大区:' + zone,
                      '创建时间: ' + ct,
                      '到期时间: ' + et,
                      '操作系统: ' + os,
                      '总流量:' + tft + 'GB',
                      '已用流量(%): ' + tfu + 'GB' + ' (' + str(percent_tfu) + '%)',
                      '剩余流量: ' + tfr + 'GB' + ' (' + str(percent_tfr) + '%)',
                      '该实例是否绑定密钥:'+ login_staus,
                      '请求发送时间:' + strftime('%Y-%m-%d %H:%M:%S', localtime()),
                      '--------------------------------',
                      sep='\n')
                # 绑定密钥
                associate_key = input('输入y绑定密钥(其他则不绑定):')

                if associate_key == 'y':

                    try:
                        req2 = models.AssociateInstancesKeyPairsRequest()
                        params2 = {
                            "KeyIds": [keyid],
                            "InstanceIds": [id]

                        }
                        req2.from_json_string(json.dumps(params2))

                        resp2 = client.AssociateInstancesKeyPairs(req2)
                        response2 = json.loads(resp2.to_json_string())
                        print('绑定成功!')

                    except TencentCloudSDKException as err:
                        print(err)
                else:
                    continue
    except TencentCloudSDKException as err:
        print(err)

end = time()
print('本次代码执行共耗时:', round(end - start, 2), 's')

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
太牛啦
太牛啦
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
SAP EWM初阶之批量上传STORAGE BIN主数据
事务代码/SCWM/SBUP可以通过上传文件的方式批量创建storage bin 主数据,
SAP虾客
2025/06/08
340
SAP EWM学习笔记之EWM系统对于OUTBOUND DELIVERY如何确定集货区(Staging Area)?
事务代码:/SCWM/STADET_OUT – Staging Area and Door Determination(Outbound),
SAP虾客
2025/05/26
730
SAP EWM学习笔记之EWM里面的INBOUND DELIVERY
SAP虾客
2025/05/26
710
SAP EWM学习笔记之某个交货单创建后未能进入EWM,在inbound queue里面又被人误删除了,该如何处理?
SAP EWM学习笔记之某个交货单创建后未能进入EWM,在inbound queue里面又被人误删除了,该如何处理?
SAP虾客
2025/05/25
1140
SAP EWM学习笔记之SMQ2处理未能传入EWM系统的内向交货单
在SAP项目实践中,如果我们发现SAP ERP里的某个Inbound delivery创建后未能如预期传入SAP EWM系统,可以执行事务代码SMQ2, 看这个INBOUND DELIVERY 是否在队列里面。
SAP虾客
2025/05/25
1060
SAP EWM 学习笔记之如何使得EWM里面的内向交货单与S4里面的内向交货单号码相同?
会使得EWM里的Inbound Delivery号码跟S4里面的INBOUND DELIVERY号码相同。
SAP虾客
2025/05/26
510
SAP EWM初阶之Inbound Delivery的PPF Action
SAP EWM(Extended Warehouse Management)是一个强大的仓库管理系统,它提供了一系列的工具和功能,以支持复杂的仓储操作和供应链执行。随着业务需求的多样化和复杂化,对EWM系统中业务流程的监控与控制提出了更高的要求。为了解决这些问题,SAP引入了PPF(Process Control Framework,流程控制框架),它是一种灵活、可配置的架构,用于管理和监控SAP EWM中的业务流程。
SAP虾客
2025/06/08
650
SAP EWM学习笔记之执行事务代码SMQR可以停用某个QUEUE
执行事务代码SMQR,进入如下qRFC Monitor(QIN Scheduler)界面,
SAP虾客
2025/05/21
490
SAP EWM学习笔记之WM仓库号和EWM仓库号的LINK
在后台配置里,这个三位字符的仓库号与Plant + Storage Location组合关联,
SAP虾客
2025/05/21
670
[apue] Unix 系统数据文件那些事儿
Unix like 系统和 windows 的最大区别就是有一套标准的系统信息数据文件,一般存放在 /etc/ 目录下,并且提供了一组近似的接口访问和查询信息,这些基础设施让系统管理看起来井井有条,下面就来盘点一下。
海海
2023/01/10
3.2K0
建议收藏 | CS学习笔记合集
自2020年4月份至2020年10月份,笔者更新了自己在学习 Cobalt Strike 过程中的 28 篇笔记,并将笔记同步更新到了自己的公众号、博客、CSDN、知乎、简书等平台,特在此整理成合集发布出来。 在合集中对于笔记的标题、内容顺序适当的进行了一些更改,从而使得整体看起来更加和谐。
TeamsSix
2020/10/30
3.7K0
建议收藏 | CS学习笔记合集
软件设计师复习资料「建议收藏」
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说软件设计师复习资料「建议收藏」,希望能够帮助大家进步!!!
Java架构师必看
2022/06/27
6.6K0
机器学习学术速递[6.23]
【1】 NetFense: Adversarial Defenses against Privacy Attacks on Neural Networks for Graph Data 标题:NetFense:针对图数据的神经网络隐私攻击的对抗性防御
公众号-arXiv每日学术速递
2021/07/02
1.8K0
如何做职业规划并进行求职准备(持续更新)「建议收藏」
总结:就现在情况,大学我不考研,安心求职 考研=我要“它”+我现在就要 我不要“它”:测试是个实践性很强的工作,测试招聘学士学位占比低,研究型的测试研究生学历比起小本并不能带来太大优势 我现在不要:不可否认,学历可以突破职业瓶颈,所以我要考研,但是是在很多年以后,而不是现在。(等以后进入管理阶层,有了丰富的经验,考取工商管理MBA,得到的相关的文凭技能人脉会更加有价值)
全栈程序员站长
2022/11/01
3.3K0
如何做职业规划并进行求职准备(持续更新)「建议收藏」
UIUC CS241 讲义:众包系统编程书
欢迎来到 Angrave 的众包系统编程维基书!这个维基是由伊利诺伊大学的学生和教师共同建立的,是伊利诺伊大学 CS 的 Lawrence Angrave 的众包创作实验。
ApacheCN_飞龙
2024/01/12
9200
UIUC CS241 讲义:众包系统编程书
Python 迁移学习实用指南:6~11
在计算机视觉的保护下,图像识别是一个活跃的跨学科研究领域。 顾名思义,图像或对象识别是识别图像或视频序列中的对象的任务。 传统上,该领域利用数学和计算机辅助建模以及对象设计方面的进步。 这些年来,已经开发了一些手工标注的数据集,以测试和评估图像识别系统。 我们现在称它们为传统技术,一直统治着整个场景,并且不断地改进这项任务,直到最近。 2012 年,深度学习参加了 ImageNet 竞赛,为快速改善和进步计算机视觉和深度学习技术打开了闸门。
ApacheCN_飞龙
2023/04/23
1.7K0
机器学习学术速递[8.24]
【1】 Graph Attention Multi-Layer Perceptron 标题:图形注意多层感知器 链接:https://arxiv.org/abs/2108.10097
公众号-arXiv每日学术速递
2021/08/25
2K0
机器学习学术速递[12.7]
【1】 Distance and Hop-wise Structures Encoding Enhanced Graph Attention Networks 标题:增强型图注意网络的距离和跳数结构编码 链接:https://arxiv.org/abs/2112.02868
公众号-arXiv每日学术速递
2021/12/09
1.2K0
硬件资料和软件资料_电脑硬件检测工具哪个好
2. BIOS报警声意义 3. BIOS自检与开机故障相关问题 5. 计算机几个常见指标的意义 6. 显卡GPU参数 7. 显示卡常见故障全面解决 8. 集成声卡常见故障及解决 9. 显示器经典故障以及处理办法 10. AMI主板代码大全(BIOS-ID)
全栈程序员站长
2022/11/01
4.9K0
机器学习学术速递[11.9]
【1】 Directional Message Passing on Molecular Graphs via Synthetic Coordinates 标题:基于合成坐标的分子图定向信息传递 链接:https://arxiv.org/abs/2111.04718
公众号-arXiv每日学术速递
2021/11/17
1.8K0
推荐阅读
相关推荐
SAP EWM初阶之批量上传STORAGE BIN主数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验