写点什么

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:00696

评论

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

HarmonyOS 5.0应用开发——菜单的显示

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

tomcat里web.xml中load-on-startup参数含义

百度搜索:蓝易云

HarmonyOS 5.0应用开发——全屏模态框

高心星

HarmonyOS arkui 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——下拉刷新和上拉加载更多组件

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

度小满,让“推理大模型”走向金融核心业务

脑极体

AI

企业如何有效平衡创新与日常运维

爱吃小舅的鱼

创新与日常运维的平衡

MySQL查询不区分大小写问题

百度搜索:蓝易云

HarmonyOS 5.0应用开发——抽屉布局SideBarContainer

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

天润融通创新方案,3分钟掌握引入一线经验至知识库

天润融通

HarmonyOS 5.0应用开发——@build构建函数的使用

高心星

HarmonyOS 鸿蒙 Ability arkui 鸿蒙5.0

HarmonyOS 5.0应用开发——RCP框架实现断点续传

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——多种方式实现图片解码

高心星

鸿蒙 HarmonyOS HarmonyOS框架 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——图像PixelMap变换

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——Navigation实现页面路由

高心星

鸿蒙 HarmonyOS 应用开发 鸿蒙5.0 HarmonyOS NEXT

中间件全球数据实时同步利器,华为云EventGrid 事件流重磅发布

YG科技

Mybatis的<insert>,<update>,<delete>标签用法

百度搜索:蓝易云

常见html错误

百度搜索:蓝易云

HarmonyOS 5.0应用开发——瀑布流WaterFlow

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

天润融通突破AI客服局限,三大关键提升文本机器人问答效果

天润融通

HarmonyOS 5.0应用开发——响应式布局之媒体查询

高心星

鸿蒙 arkui 鸿蒙5.0 HarmonyOS NEXT

阿里巴巴1688商品API:深度解析商品分类与筛选条件

代码忍者

API 接口 pinduoduo API

js获取select选中的标签option的值

百度搜索:蓝易云

HarmonyOS 5.0应用开发——LazyForEach数据懒加载

高心星

HarmonyOS arkui 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——@BuildParam自定义插槽

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

07.适配器模式设计思想

杨充

HarmonyOS 5.0应用开发——RCP框架的使用

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

HarmonyOS 5.0应用开发——图像PixelMap压缩保存

高心星

鸿蒙 HarmonyOS 应用开发 鸿蒙5.0

为革命保护“视”力 - 注意力插件开发

小学后生

开源 工具 插件 谷歌插件

多项目管理复杂性的关键要素

爱吃小舅的鱼

多项目管理复杂性

HarmonyOS 5.0应用开发——半模态框展示

高心星

鸿蒙 HarmonyOS 鸿蒙5.0 HarmonyOS NEXT

从零开始:项目如何确保符合行业安全标准?

爱吃小舅的鱼

行业安全标准

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