在 AWS 上运行 EC2 实例时,了解实例类型、数量以及预留实例信息非常重要。这不仅有助于优化成本,还可以帮助您根据需求调整资源。本文将介绍如何使用 Python 和 AWS SDK (Boto3) 获取这些信息。
代码解析
代码解释
- 导入
boto3库和defaultdict模块。 - 定义
get_ec2_instance_info()函数,用于获取 EC2 实例信息:
- 创建 EC2 客户端。
- 获取所有运行中的实例信息。
- 使用
defaultdict统计每种实例类型的实例数量。 - 获取预留实例信息。
- 计算每种实例类型的预留实例信息,包括实例数量、预留实例数量、需要增加的预留实例数量和多余的预留实例数量。
- 返回包含实例信息的字典。
- 定义
output_instance_info()函数,用于输出 EC2 实例信息。 - 调用
get_ec2_instance_info()函数获取 EC2 实例信息。 - 调用
output_instance_info()函数输出 EC2 实例信息。
优化点
- 使用
defaultdict替代原始字典,避免了重复检查键是否存在的操作。 - 合并了获取实例信息和统计实例数量的操作,减少了代码重复。
- 使用列表解析简化了预留实例信息的计算过程。
- 将实例信息的计算和输出分离,提高了代码的可读性和可维护性。
- 删除了不必要的注释,代码更加简洁。
运行结果示例
上述输出显示了三种不同的实例类型 (t2.micro、m5.large 和 c5.xlarge)。对于每种实例类型,它显示了实例数量、预留实例数量、需要增加的预留实例数量和多余的预留实例数量。
结论
通过本文,您已经学会了如何使用 Python 和 AWS SDK (Boto3) 获取 EC2 实例的类型、数量和预留实例信息。这些信息对于优化成本和资源管理非常有帮助。您可以根据需要进一步扩展和定制此代码,以满足您的特定需求。
1458

被折叠的 条评论
为什么被折叠?



