如何通过API获取AWS EBS gp3的IOPS与吞吐量定价?
AWS EC2卷吞吐量定价获取方案
现状梳理
- 仅能通过AWS定价API获取每GB卷存储价格
- EC2服务索引文件仅展示卷存储与IOPS定价,无吞吐量定价信息
- 已尝试boto3定价客户端,添加
volumeType和volumeApiName筛选但未得到目标数据
解决方法
1. 扩展boto3筛选维度
对于gp3、io2这类支持独立吞吐量配置的卷,吞吐量定价隐藏在productAttributes的throughput字段中,需要补充该筛选条件:
import boto3 pricing = boto3.client('pricing', region_name='us-east-1') response = pricing.get_products( ServiceCode='AmazonEC2', Filters=[ {'Type': 'TERM_MATCH', 'Field': 'volumeType', 'Value': 'gp3'}, {'Type': 'TERM_MATCH', 'Field': 'location', 'Value': 'US East (N. Virginia)'}, {'Type': 'TERM_MATCH', 'Field': 'productFamily', 'Value': 'Storage'}, # 匹配指定吞吐量档位 {'Type': 'TERM_MATCH', 'Field': 'throughput', 'Value': '125'} ] )
返回结果中,priceDimensions下的条目会包含对应吞吐量的计费细节。
2. 按usageType筛选
部分区域的吞吐量定价会归类在usageType字段下,格式类似USE2-EBS:VolumeUsage.gp3.Throughput,可以直接筛选该字段:
# 在Filters中添加 {'Type': 'TERM_MATCH', 'Field': 'usageType', 'Value': 'USE2-EBS:VolumeUsage.gp3.Throughput'}
3. 匹配区域与卷类型
- 不同区域的吞吐量定价存在差异,确保
location参数与目标区域一致 - 仅gp3、io2 Block Express等卷类型会单独收取吞吐量费用,确认目标卷类型是否符合
注意事项
- 定价API返回的JSON数据需逐层解析
product→attributes→priceDimensions提取定价信息 - 服务索引文件未包含吞吐量定价时,直接通过定价API的
productAttributes字段获取对应配置的定价
内容的提问来源于stack exchange,提问作者abishek.c101
相关产品推荐
相关产品推荐

