获取凭证的AKSK

import csv
import osclass ReadCredentials:def __init__(self):self.file_dir = 'D:/BaiduNetdiskWorkspace/代码/python/aws/Credentials'def file_name(self):""":return: 返回credentials下所有的文件名"""return os.listdir(self.file_dir)def read_csv(self, filename):""":param filename: Credential 的文件名:return: 将 Credential 里面的内容以 json 的格式返回"""tableData = []filename = self.file_dir + '/' + filenamewith open(filename, 'r', encoding='utf-8') as csvfile:reader = csv.DictReader(csvfile)for row in reader:tableData.append(dict(row))return tableDatadef get_credential(self):""":return: 把所有 credential 整合输出"""file_names = self.file_name()credentials = []for file_name in file_names:credentials.append(self.read_csv(file_name)[0])return credentialsif __name__ == "__main__":print(ReadCredentials().get_credential())

获取EC2的信息

# -*- coding: utf-8 -*-
"""
@Time : 2021/10/9 10:07
@Auth : ndmiao
@Blog :www.ndmiao.cn
@Url :https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ec2.html#EC2.Client.describe_instances
"""import openpyxl
import boto3
from ReadCredentials import ReadCredentials
from openpyxl.styles import Alignmentclass GetEC2Information:def __init__(self):self.region = 'cn-north-1'def ec2_client(self, id, key, region):""":param id: aws_access_key_id:param key: aws_secret_access_key:param region: region_name:return: 建立一个与 ec2 的连接"""ec2 = boto3.client('ec2',aws_access_key_id = id,aws_secret_access_key = key,region_name = region)return ec2def ec2_information(self):""":return: 获取所有账号下ec2资源信息,保存到xlsx里面"""credentials = ReadCredentials().get_credential()wb = WriteToXlsx().active_xlsx()for credential in credentials:ec2 = self.ec2_client(credential['Access key ID'], credential['Secret access key'], self.region)instances = ec2.describe_instances()instance_info = []for item in instances['Reservations']:owner_id = item['OwnerId']for instance in item['Instances']:InstanceId = instance['InstanceId']InstanceType = instance['InstanceType']PrivateIpAddress = instance['PrivateIpAddress']State = instance['State']['Name']Tags = instance['Tags']Name = self.get_tag(Tags, 'Name')Project = self.get_tag(Tags, 'project')Schedule = self.get_tag(Tags, 'Schedule')ScheduleMessage = self.get_tag(Tags, 'ScheduleMessage')instance_info.append([Name, InstanceId, InstanceType, PrivateIpAddress, Project, State, Schedule, ScheduleMessage])WriteToXlsx().send_data(wb, owner_id, instance_info)WriteToXlsx().save(wb)def get_tag(self, Tags, key):value = [tag['Value'] for tag in Tags if tag['Key'] == key]try:value = value[0]except:value = 'None'return valueclass WriteToXlsx:def __init__(self):self.headers = ['Name', 'InstanceId', 'InstanceType', 'PrivateIpAddress', 'Project', 'State', 'Schedule', 'ScheduleMessage']self.xlsx_name = 'D:/BaiduNetdiskWorkspace/代码/python/aws/EC2/ResoursesList.xlsx'def active_xlsx(self):""":return: 创建一个 xlsx 连接"""wb = openpyxl.Workbook()return wbdef send_data(self, wb, sheet_name, sheet_data):""":param wb: wb:param sheet_name: 表名:param sheet_data: 写入的数据:return: 生成一个 sheet 并写入数据"""ws = wb.create_sheet(sheet_name)ws.append(self.headers)for data in sheet_data:ws.append(data)self.center(wb, sheet_name)def center(self, wb, sheet_name):table = wb[sheet_name]rows = table.max_rowcols = table.max_columnalignobj = Alignment(horizontal='center', vertical='center', wrap_text=True)for r in range(rows + 1):for c in range(cols + 1):if r != 0 and c != 0:table.cell(row=r, column=c).alignment = alignobjdef save(self, wb):""":return: 保存"""wb.remove(wb['Sheet'])wb.save(self.xlsx_name)if __name__ == "__main__":GetEC2Information().ec2_information()

GitHub @ndmiao  · 
BiliBili @南岛鹋  · 
知乎 @南岛鹋  · 
CSDN @南岛鹋  · 
博客园 @南岛鹋  · 
个人站点 @南岛鹋

打赏

支付宝 微信

Python boto3 遍历credential获取aws EC2基本信息相关推荐

  1. python相关linux_Python实现获取Linux系统基本信息

    Python实现获取Linux系统基本信息,获取信息如下: 主机名 系统版本 系统内核版本 总内存 CPU生厂商 CPU总核心数 服务器生厂商 服务器序列号 各网卡IP,MAC和网卡名信息 实现代码如 ...

  2. aws v2.2.exe_如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服务器...

    aws v2.2.exe by Sumeet Kumar 通过Sumeet Kumar 如何使用Python 3.6在AWS EC2上创建运行uWSGI,NGINX和PostgreSQLDjango服 ...

  3. 进阶的阿牛哥之用python向多人发送邮件(带附件)、遍历邮件获取内容(两种方法:imbox、imaplib)

    (一)向多人发送邮件(带附件) 一.使用的库 这个程序涉及两个库:smtplib 和 email 这两个库都是Python自带的,所以不需要额外的下载安装. 二.思路和步骤 总体思路很简单,就像我们平 ...

  4. python遍历数组获取下标_python获取list下标及其值的简单方法

    python列表知道下标怎么取值在python中,如果知道列表下标,可以直接通过下标法(列表名[下标])来在python中,如果知道列表下标,可以直接通过下标法(列表名[下标])来取出该下标对应的列表 ...

  5. 如何使用CloudFormation自动在AWS EC2上安装Anaconda

    by Daniel Barker 丹尼尔·巴克(Daniel Barker) 如何使用CloudFormation自动在AWS EC2上安装Anaconda (How to automate Anac ...

  6. aws ec2 选择可用区_AWS Messaging Services:选择合适的服务

    aws ec2 选择可用区 1. AWS消息服务 AWS Messaging服务使云中相似和不同的软件系统能够异步通信和交换信息. 这些软件系统可能不兼容且使用不同的语言,也可能在不同的平台上. AW ...

  7. aws ec2 跨帐号共享_AWS共享资源的警告

    aws ec2 跨帐号共享 最近,我一直在发布一个新版本,与往常一样,通过将DNS记录切换为指向以前的"备用"组的负载平衡器来利用蓝绿色部署 . 但是在切换DNS之前,我检查了新发 ...

  8. 已经创建了AWS EC2实例,Linux系统默认没有root用户,那么如何创建root用户并更改为root用户登录呢?

    文章目录 1. 如何创建ROOT及设置密码 2.更改登陆方式,采用ROOT用户登陆 a. 编辑EC2实例的ssh登录方式 b. 再编辑authorized_keys文件,将ssh-rsa 前面的文字全 ...

  9. python dict遍历_Python 容器(二):字典(Dict)

    Python 容器(二):字典(Dict) 一.字典 1.定义:Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有 ...

最新文章

  1. 分库分表的4个面试连环炮问题!不会就惨了!
  2. Android UI开发第五篇——自定义列表
  3. numpy中where函数的用法
  4. Android Studio常用插件
  5. MySQL where后面的列子查询使用
  6. 一致性协议raft详解(二):安全性
  7. java迭代器用途_各位JAVA前辈,迭代器使用报错。
  8. 第七节:Trigger(SimpleTrigger、CronTrigger)哑火(MisFire)策略 :
  9. 去重的Set解不出“斯诺登的密码”(洛谷P1603题题解,Java语言描述)
  10. 【算法分析与设计】计数排序
  11. QML文档阅读笔记-easing.type解析与实例
  12. Anaconda 安装 ml_metrics package
  13. 一个迷失了本性的聊天软件,初衷不在,何其悲伤
  14. 移动端常见bug汇总001
  15. WIN7(VISTA)系统无法上网问题排查方法
  16. 【Hadoop Summit Tokyo 2016】欢迎来到Hadoop的青春时代
  17. sas最新sid及安装方法
  18. 使用DTS迁移12cR2到 dm8
  19. 百度文库中的文字不能复制,怎么办?
  20. 数字图像处理与Python实现-边缘检测-Roberts算子边缘检测

热门文章

  1. Flash CS4网页中Flash背景透明
  2. uniapp中自定义showToast样式
  3. Python深度学习婴儿啼哭声分类识别,测试集准确率67.5%
  4. a豆的使命:每一位年轻人都值得珍重
  5. 《迅雷链精品课》第十五课:共识算法的性能问题
  6. 威联通 nas mysql_威联通(NAS)应用篇:自建OwnCloud网盘(百度网盘,拜拜~~~)
  7. win10开机自动有线连接拨号上网
  8. STM32F103C8T6基础开发教程(HAL库)—开发环境配置
  9. python3计算常数e的代码
  10. wlop一张多少钱_为什么都说wlop的画很烂?