python - 如何使用 python 获取有关 ec2 实例的报告?
问题描述
我想生成一份关于添加/删除哪些新实例以及对实例进行的任何配置更改的每日报告(使用 lambda),以便在预算时帮助我的团队。
我使用 describe_instance 获取实例的启动时间,我想将它与昨天的日期进行比较,如果匹配,则将实例 ID 和一些其他信息附加到 Excel 表中,但我对 lambda 和 python 完全陌生,而不是确定在获得启动时间后如何创建逻辑
ec2info = defaultdict()
for instance in running_instances:
for tag in instance.tags:
if 'Name'in tag['Key']:
name = tag['Value']
#Add instance info to a dictionary
ec2info[instance.id] = {
'Name': name,
'Type': instance.instance_type,
'State': instance.state['Name'],
'Private IP': instance.private_ip_address,
'Public IP': instance.public_ip_address,
'Launch Time': instance.launch_time
}
attributes = ['Name', 'Type', 'State', 'Private IP', 'Public IP', 'Launch Time']
for instance_id, instance in ec2info.items():
for key in attributes:
print("{0}: {1}".format(key, instance[key]))
print("------")
这是我得到的输出,不知道在此之后如何进行?
名称:aecpns-lb02
类型:m4.xlarge
状态:运行
私有IP:172.26.29.132
公共 IP:无
上线时间:2019-03-22 19:46:16+00:00
解决方案
您可以利用AWS Config服务,而不必自己收集和维护这些信息。
AWS Config提供您 AWS 账户中 AWS 资源配置的详细视图。这包括资源如何相互关联以及它们过去是如何配置的,以便您可以看到配置和关系如何随时间变化。
推荐阅读
- python - 在 Keras 中使用自定义损失函数时的批量大小问题
- c++ - 在 C++ 中有效地右移二进制字符串
- matlab - 生成更大的随机整数 - MATLAB
- c - 使用 strtok,最后一个标记带有行分隔符
- python - 从 tfrecords 解码等级 5 的张量会产生“CopyElementToLargerSlice Unhandled rank: 5”
- c# - 从多个线程 C#.Net 调用时 GetWorkItemAsync 方法异常
- python - 按 F5 使用 VS Code 调试 Python 模块
- python - 匹配和连接两个不一致的 DataFrame
- php - 如何检查另一个表的最后 N 行中是否存在值?
- python - Google Cloud VM 中的 Python 代码在一段时间后停止工作?