写点什么

AWS 价目表 API 更新 – 新增查询和元数据函数

  • 2019-11-07
  • 本文字数:4933 字

    阅读完需:约 16 分钟

AWS 价目表 API 更新 – 新增查询和元数据函数

原始 AWS 价目表 API (如新增 – AWS 价目表 API中所述) 使您可以通过结构化 URL 访问 JSON 和 CSV 形式的价格。虽然这对某些类型的成本管理工具很有效,但文件的大小和复杂性使得它们难以下载,而且难以解析。今天,我们将要通过添加新函数来更新 API,使您可以执行精细价格查询,从而仅返回您需要的价格。这将使您能够在移动应用程序和基于浏览器的应用程序中使用这些价格。


新增函数


下面是新增函数:


DescribeServices – 返回用于定义服务中的产品的属性键集合。例如,为 EC2 返回的键将包括 physicalProcessormemoryoperatingSystemlocationtenancy


GetAttributeValues – 返回给定属性键的所有允许值。例如,operatingSystem 键的值包括 WindowsRHELLinuxSUSElocation 键的值包括 US East (N. Virginia)Asia Pacific (Mumbai)


GetProducts – 返回与基于服务名称和属性值的筛选条件表达式匹配的所有产品及其公开价格。


您可以从 AWS 开发工具包中访问这些函数。为了试用它们,我使用了 Python 和适用于 Python 的 AWS 开发工具包。我首先导入开发工具包并创建客户端:


Python


import boto3import jsonimport pprint
pricing = boto3.client('pricing')
复制代码


下面是我如何列出所有服务和属性:


Python


print("All Services")print("============")response = pricing.describe_services()for service in response['Services']:    print(service['ServiceCode'] + ": " + ", ".join(service['AttributeNames']))print()
复制代码


输出的开头部分如下所示:


Bash


All Services============SnowballExtraDays: productFamily, termType, usagetype, locationType, snowballType, feeDescription, servicecode, feeCode, location, operationOpsWorks: productFamily, servicecode, termType, usagetype, locationType, location, operation, serverLocation, groupmobileanalytics: productFamily, servicecode, includedEvents, termType, usagetype, description, locationType, location, operationIngestionServiceSnowball: productFamily, fromLocationType, termType, usagetype, locationType, toLocationType, toLocation, snowballType, servicecode, groupDescription, transferType, location, fromLocation, operation, groupIngestionService: productFamily, termType, usagetype, locationType, servicecode, groupDescription, dataAction, location, operation, groupElasticMapReduce: productFamily, softwareType, instanceType, termType, usagetype, locationType, instanceFamily, servicecode, location, servicename, operationdatapipeline: productFamily, frequencyMode, termType, usagetype, locationType, description, executionFrequency, servicecode, location, operation, group, executionLocation...
复制代码


下面是我如何获取所有 EC2 定价属性的所有值:


Python


print("Selected EC2 Attributes & Values")print("================================")response = pricing.describe_services(ServiceCode='AmazonEC2')attrs = response['Services'][0]['AttributeNames']
for attr in attrs: response = pricing.get_attribute_values(ServiceCode='AmazonEC2', AttributeName=attr)
values = [] for attr_value in response['AttributeValues']: values.append(attr_value['Value'])
print(" " + attr + ": " + ", ".join(values))
复制代码


输出的开头部分如下所示:


Bash


Selected EC2 Attributes & Values================================  volumeType: Throughput Optimized HDD, Provisioned IOPS, Magnetic, General Purpose, Cold HDD  maxIopsvolume: 500 - based on 1 MiB I/O size, 40 - 200, 250 - based on 1 MiB I/O size, 20000, 10000  instanceCapacity10xlarge: 1  locationType: AWS Region  instanceFamily: Storage optimized, Micro instances, Memory optimized, GPU instance, General purpose, Compute optimized  operatingSystem: Windows, SUSE, RHEL, NA, Linux...
复制代码


下面是我如何使用服务名称和属性值来获取在亚太 (孟买) 区域具有 64 vCPU、256 GiB 内存、预装 SQL Server Enterprise 的 EC2 实例的价格列表。每个价格都是一个 JSON 字符串:


Python


print("Selected EC2 Products")print("=====================")
response = pricing.get_products( ServiceCode='AmazonEC2', Filters = [ {'Type' :'TERM_MATCH', 'Field':'operatingSystem', 'Value':'Windows' }, {'Type' :'TERM_MATCH', 'Field':'vcpu', 'Value':'64' }, {'Type' :'TERM_MATCH', 'Field':'memory', 'Value':'256 GiB' }, {'Type' :'TERM_MATCH', 'Field':'preInstalledSw', 'Value':'SQL Ent' }, {'Type' :'TERM_MATCH', 'Field':'location', 'Value':'Asia Pacific (Mumbai)'} ], MaxResults=100)
for price in response['PriceList']: pp = pprint.PrettyPrinter(indent=1. width=300) pp.pprint(json.loads(price)) print()
复制代码


输出的开头部分如下所示 (还有很多):


Bash


Selected EC2 Products====================={'product': {'attributes': {'clockSpeed': '2.3 GHz',                            'currentGeneration': 'Yes',                            'dedicatedEbsThroughput': '10000 Mbps',                            'ecu': '188',                            'enhancedNetworkingSupported': 'Yes',                            'instanceFamily': 'General purpose',                            'instanceType': 'm4.16xlarge',                            'licenseModel': 'No License required',                            'location': 'Asia Pacific (Mumbai)',                            'locationType': 'AWS Region',                            'memory': '256 GiB',                            'networkPerformance': '20 Gigabit',                            'normalizationSizeFactor': '128',                            'operatingSystem': 'Windows',                            'operation': 'RunInstances:0102',                            'physicalProcessor': 'Intel Xeon E5-2686 v4 (Broadwell)',                            'preInstalledSw': 'SQL Ent',                            'processorArchitecture': '64-bit',                            'processorFeatures': 'Intel AVX, Intel AVX2, Intel Turbo',                            'servicecode': 'AmazonEC2',                            'servicename': 'Amazon Elastic Compute Cloud',                            'storage': 'EBS only',                            'tenancy': 'Shared',                            'usagetype': 'APS3-BoxUsage:m4.16xlarge',                            'vcpu': '64'},             'productFamily': 'Compute Instance',             'sku': '24GRA8RB2KZ9NPCS'}, 'publicationDate': '2017-10-07T00:26:55Z', 'serviceCode': 'AmazonEC2',...
复制代码


响应的下一部分包含一组条款,每个条款都描述了购买实例的特定方式 (按需或多种类型的预留实例):


Bash


'terms': {'OnDemand': {'24GRA8RB2KZ9NPCS.JRTCKXETXF': {'effectiveDate': '2017-09-01T00:00:00Z',                                                        'offerTermCode': 'JRTCKXETXF',                                                        'priceDimensions': {'24GRA8RB2KZ9NPCS.JRTCKXETXF.6YS6EN2CT7': {'appliesTo': [],                                                                                                                       'beginRange': '0',                                                                                                                       'description': '$30.88 per On Demand Windows with SQL Server Enterprise m4.16xlarge Instance Hour',                                                                                                                       'endRange': 'Inf',                                                                                                                       'pricePerUnit': {'USD': '30.8800000000'},                                                                                                                       'rateCode': '24GRA8RB2KZ9NPCS.JRTCKXETXF.6YS6EN2CT7',                                                                                                                       'unit': 'Hrs'}},                                                        'sku': '24GRA8RB2KZ9NPCS',                                                        'termAttributes': {}}},           'Reserved': {'24GRA8RB2KZ9NPCS.38NPMPTW36': {'effectiveDate': '2017-04-30T23:59:59Z',                                                        'offerTermCode': '38NPMPTW36',                                                        'priceDimensions': {'24GRA8RB2KZ9NPCS.38NPMPTW36.2TG2D8R56U': {'appliesTo': [], 'description': 'Upfront Fee', 'pricePerUnit': {'USD': '374227'}, 'rateCode': '24GRA8RB2KZ9NPCS.38NPMPTW36.2TG2D8R56U', 'unit': 'Quantity'},                                                                            '24GRA8RB2KZ9NPCS.38NPMPTW36.6YS6EN2CT7': {'appliesTo': [],                                                                                                                       'beginRange': '0',                                                                                                                       'description': 'Windows with SQL Server Enterprise (Amazon VPC), m4.16xlarge reserved instance applied',                                                                                                                       'endRange': 'Inf',                                                                                                                       'pricePerUnit': {'USD': '14.2400000000'},                                                                                                                       'rateCode': '24GRA8RB2KZ9NPCS.38NPMPTW36.6YS6EN2CT7',                                                                                                                       'unit': 'Hrs'}},                                                        'sku': '24GRA8RB2KZ9NPCS',                                                        'termAttributes': {'LeaseContractLength': '3yr', 'OfferingClass': 'standard', 'PurchaseOption': 'Partial Upfront'}},...
复制代码


阅读使用 AWS 价目表 API 以了解有关这些函数及其返回数据的更多信息。


现在提供


新增函数现已推出,您可以开始在美国东部 (弗吉尼亚北部)和亚太 (孟买) 区域使用它们来访问所有公有 AWS 区域和 AWS GovCloud (美国) 的元数据和价格列表,它们是免费的。


要查看如何使用这些函数的真实示例,请在 AWS 管理工具博客上查看新博客文章通过月度预算策略来控制预计用户成本


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/aws-price-list-api-update-new-query-and-metadata-functions/


2019-11-07 08:00780

评论

发布
暂无评论
发现更多内容

架构师训练营第四周作业

王铭铭

第四周总结

大雄

不会用这个远控工具 怎么好意思说你会远程运维?

InfoQ_21c8aba5317f

远控工具

week4作业一

任鑫

架构

大型互联网应用系统使用了哪些技术方案和手段

刘志刚

第四周作业

腾志文(清样)

典型的大型互联网应用系统使用了哪些技术方案和手段之个人见解和总结

潜默闻雨

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?

任小龙

发力数字化“新基建”,株洲市商务和粮食局携手慧策举办企业专场培训会

InfoQ_21c8aba5317f

游戏夜读 | 在游戏中打败人类

game1night

第四周作业

架构师训练营第四周学习总结

whiter

极客大学架构师训练营

说说JS中的new操作到底做了些什么?

Geek_qw7y4m

Java 大前端

浅谈大型网站技术应用及适用场景

Jerry Tse

架构 网站架构 极客大学架构师训练营 作业

第四周作业

大雄

redis设计与实现(1)redis数据结构

程序员老王

redis

架构师训练营Week4

Frank Zeng

架构师训练营Week4学习总结

Frank Zeng

架构师训练营第四周命题作业

hifly

分层架构 极客大学架构师训练营 技术方案

架构师训练营第四周总结

王鑫龙

极客大学架构师训练营

陈迪豪:推荐系统大规模特征工程与Spark基于LLVM优化

天枢数智运营

人工智能 第四范式 天枢

架构师训练营第四周命题作业

whiter

极客大学架构师训练营

第四周总结

腾志文(清样)

作业

第四周学习总结

架构师 极客大学架构师训练营

架构师训练营 第四周 系统架构作业

且听且吟

极客大学架构师训练营

未来已至,唯有拥抱变化才能生存

董一凡

生活,随想

架构师训练营第四周总结

王铭铭

聊聊架构演化

Jerry Tse

架构 极客大学架构师训练营 作业

架构师训练营第四周总结

架构师 极客大学架构师训练营

猿灯塔:Java程序员月薪三万,需要技术达到什么水平?

猿灯塔

Java

互联网运用那些技术手段解决什么问题?

师哥

AWS 价目表 API 更新 – 新增查询和元数据函数_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章