amazon-web-services - 如何使用 python 获取 AWS 实例的总内存大小?
问题描述
我想在 AWS 实例中运行一个 python 启动脚本,我想在其中获取在实例创建期间选择的总内存大小。
我试过了free -h
,grep MemTotal
/proc/meminfo
命令。但是,这些命令的问题是,我获得的 RAM 量比我在创建实例时选择的实际内存大小要少一些(可能是由于系统使用)。我想获得创建实例时选择的确切内存大小。例如,“t2.small”为“2 GB”,“c5.large”为“4 GB”等。
此外,没有可用于获取 AWS 实例内存大小的元数据 URL。
有没有办法做到这一点?
解决方案
我自己没有这样做,但我认为这个过程可能是这样的:
客户端 = boto3.client('ec2')
type = client.describe_instance_attribute(Attribute='instanceType', InstanceId='YOUR_ID')
详细信息 = client.describe_instance_types(InstanceTypes=[ type ])
内存 = 详细信息['InstanceTypes']['MemoryInfo']['SizeInMiB']
您需要为实例提供正确的 IAM 权限以获取数据(它与http://169.254.169.254元数据不同)。
您还可以从http://169.254.169.254/2020-10-27/meta-data/instance-type/获取实例类型,但我正在尝试使用 boto3 寻求完全 python 解决方案。
推荐阅读
- c# - Cyotek ImageBox 获得放大的图像部分
- php - array_diff_assoc() 还是 foreach()?哪个更快?
- highcharts - 高位图表 平均时间圆图位置变化
- c - 将指向 A 的指针转换为指向嵌入 A 的结构 B 的指针
- ruby-on-rails - 如何在 Ruby on Rails 中使用回形针制作具有无限图像的模型?
- azure-devops - 我可以在 VSTS 的工件中添加最新的 1 版本吗?
- node.js - 如果计数值返回 1,则继续查询以计数和更新数据
- azure - 使用 azure 事件中心触发函数批量接收事件中心事件的可能性
- ios - 执行人脸识别时出现opencv灯问题
- javascript - 如何使用函数添加 api 键值,可能是语法错误