AWS EBS – – 查找 AWS EC2 EBS 中显示的所有信息
我正在尝试创建一个脚本来为所有可用的 AWS EBS 卷生成 csv 格式文件,并显示我在 AWS EC2 EBS 卷控制台中看到的所有字段值。
10
11
[arun@-MBP-2 ~/aks/–ws-sunny/] $ cat ~/aws-vol-info.py
博托3
#这
ec2 = boto3.('ec2', = "us-west-2")
= ec2..all()
对于卷:
print"(" + str(vol.) +"),(" + str(vol.state) +"),(" + str(vol.id) +"),(" + str(vol.size) + ")" + 卷类型
[arun@-MBP-2 ~/aks/–ws-sunny/] $
该脚本给我以下错误消息。 原因:如果我不使用 vol.type 字段,上面的脚本就可以工作。 它不起作用,因为卷变量正在运行 ec2..all()。
从未将其包含在其价值中
[arun@-MBP-2 ~/aks/–ws-sunny/]$ ~/aws-vol-info.py
(大多数电话最后):
文件“/Users/arun/aws-vol-info.py”,第 9 行,位于
print"(" + str(vol.) +"),(" + str(vol.state) +"),(" + str(vol.id) +"),(" + str(vol.size) + ")" + 卷类型
:“EC2”。 没有“类型”
[arun@-MBP-2 ~/aks/–ws-sunny/] $
我应该在上面的脚本中使用/更改什么库/函数,通过它我可以显示 EBS 卷的所有字段或更有意义的字段(我在 AWS EC2 EBS 卷控制台中看到的内容),请参阅下图 AWS 可用字段在台中。
我在网上发现了另一个脚本(#2),它似乎可以打印更多字段,但它给出了下面列出的另一个错误。 我成功运行 -m pip –user aws 或 -m pip aws 或 pip aws ,或运行脚本(仅在其存储库的 aws 文件夹内的 # from aws 行之后包含行(克隆后),但仍然得到错误。
10
11
12
13
14
15
16
17 号
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
博托.ec2
班级:
定义(自我):
''' '''
定义(连接):
'''列表'''
# 得到所有
卷 = 康恩.()
# 如果找到
如果卷:
#环形
对于卷中的 v:
print 'Id:', v.id
打印 ':', v.
print '尺寸:', v.size
print '区域:', v.zone
print '类型:', v.type
打印 ':', v.
#打印设置
= v.
打印'ID:',.
打印“时间:”,.
打印 ':', 。
打印 '***********************************'
# 来自AWS
来自AWS
来自AWS
来自AWS
#aws
= ()
康涅狄格州 = .()
# 和列表
= ()
.(康涅狄格州)
脚本 #2 错误是:
(大多数电话最后):
文件">
来自AWS
: 姓名
如果我在脚本 #2 中注释来自 aws … .. 的行并且仅使用/取消注释 aws,那么我得到:
(大多数电话最后):
文件“/Users/arun/aws-vol-info2.py”,第 35 行,位于
= ()
: 名称 '' 不是
我认为您正在寻找 vol.. 您可以在 ec2 中查看属性的完整列表。 这里:
#
可以增强此脚本以显示更有意义的信息,但使用 jpavs 的提示,我想出了此脚本 ~/aws-vol-info.py:
10
11
12
13
14
15
16
17 号
18
博托3
#这
ec2 = boto3.('ec2', = "us-west-2")
# 找到所有
= ec2..all()
# 循环所有并将其传递给 ec2.('xxx')
对于卷:
iv = ec2.(str(vol.id))
print"(" + str(iv.) +"),AZ(" + str(iv.) +"),(" + str(iv.) +"),(" + str(iv.) +") ,状态(" + str(iv.state) +"),大小(" + str(iv.size) +"),IOPS(" + str(iv.iops) +"),(" + str(iv. ) +"),(" + str(iv.) +"),(" + str(iv.) +")",
# 接下来的 2 个打印仅适用于我的情况。
打印",(" + str(iv.[0]['']) +"),(" + str(iv.[0]['State']) +"),(" + str(iv.[ 0]['']) +"),(" + str(iv.[0]['']) +")",
如果四。 标签:
print",Name(" + str(iv.tags[0]['Name']) +"),(" + str(iv.tags[0]['']) +"),Role(" + str (iv.tags[0]['角色']) +"),(" + str(iv.tags[0]['']) +"),(" + str(iv.tags[0][' ']) +"),(" + str(iv.tags[0]['']) +"),Index(" + str(iv.tags[0]['index']) +")"
打印””
Ran: ~/aws-vol-info.py 它为我提供了脚本中提到的所有字段的 CSV 格式值。 由于库不提供这些,所以缺少 (2-3) 个 AWS 控制台字段,但无论我可以从上面得到什么,或者如果我深入研究 iv.[0][''] 或 iv.tags[0] [''],这对我来说已经足够了。
PS:两者皆有。 和 iv.tags 是 iv 对象中的列表/字典类型变量,因此您可以通过准确显示您想要从中获取的内容来增强脚本。 因此,如果您愿意,可以使用:str(iv.[0]['']) 来打印它。
如需更好的版本:请查看此处。 脚本:- exec 插件 – aws ec2 ebs info – 指标解析错误,原因:[缺少字段] 或遇到的错误:[无效数字]
还在这里找到了这个有用的脚本:
好了,今天的主题就讲到这里吧,不管如何,能帮到你我就很开心了,如果您觉得这篇文章写得不错,欢迎点赞和分享给身边的朋友。