产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

评论

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

从Opentracing、OpenCensus 到 OpenTelemetry,看可观测数据标准演进史

阿里巴巴云原生

去中心化钱包系统开发app,imtoken钱包平台搭建源码

Geek_56201b

#区块链# 源码搭建 去中心化钱包

GPU和AT的区别在哪里?GPU与AT有哪些区别?

Finovy Cloud

人工智能 GPU服务器 显卡、gpu GPU算力

对Indexlookup的理解误区

TiDB 社区干货传送门

Docker 实战教程之从入门到提高 (四)

汪子熙

Docker 容器 虚拟化 docker image 4月月更

低代码极简部署

源字节1号

低代码开发

web技术支持| 简单实现Vue第一章:模板编译

anyRTC开发者

Vue 前端 Web 音视频 WebRTC

Android C++系列:C++最佳实践2抽象类

轻口味

c++ android 4月月更

平安普惠湖北分公司:齐心抗疫显担当,助力小微迎暖春

科技新消息

Apache DolphinScheduler ASF 孵化器毕业一周年,汇报来了!

白鲸开源

Big Data DolphinScheduler workflow Open Source apache 社区

java培训:怎样才能写出一个优秀的对外接口

@零度

JAVA开发 对外接口

大数据培训关于数据采集面试问题分享

@零度

数据采集 面试问题 大数据开发

Jira 云产品宕机多日,业界热议上云如何保障数据安全

万事ONES

Atlassian Jira 研发管理工具 项目管理工具 企业研发管理

TiDB 查询优化及调优系列(一)TiDB 优化器简介

PingCAP

交易所多种模式开发、各种源码交易

Geek_56201b

交易所开发 区块链应用开发 软件定制

选择it资产管理软件要注意什么?

低代码小观

资产管理 企业管理系统 低代码开发 #资产追踪 客户关系管理系统

基于 EventBridge 构建数据库应用集成

阿里巴巴云原生

如何通过云效Codeup高效落地分支模式,提升开发协作率

阿里云云效

云计算 阿里云 版本管理 分支管理 分支模式

共探开源生态|Apache Pulsar 社区助力 Apache APISIX Summit Asia 2022

Apache Pulsar

开源 架构 云原生 Apache Pulsar Apache Pulsar 社区

jackson学习之九:springboot整合(配置文件)

程序员欣宸

4月月更

【数字底座专题】星环科技春季新品发布周

星环科技

平安普惠湖北分公司:疫情后来式,复工进行时

科技新消息

web前端培训学习需要掌握哪些 Linux 命令

@零度

前端开发

专车数据层架构进化往事:好的架构是进化来的,不是设计来的

勇哥java实战分享

架构

新思科技助力Linux基金会开展最新开源普查项目

InfoQ_434670063458

Linux 开源 新思科技

华为云推出限量NFT云宝,区块链技术为你的数字资产保驾护航

华为云开发者联盟

华为云 NFT 云宝 华为云NFT 华为云数字资产链

得物App H5秒开优化实战

得物技术

前端 H5 优化 实战 Web H5

ModStartCMS模块化建站系统 v3.7.0 栏目导航开关,页面样式优化

ModStart开源

TASKCTL服务端字符界面的应用系统安装

敏捷调度TASKCTL

kettle 元数据 ETL 调度任务 大数据运维

解构华为云HE2E项目中的容器技术应用

华为云开发者联盟

容器 镜像 华为云 devcloud HE2E

今天聊一聊合成数据 (Synthetic Data)

澳鹏Appen

人工智能 数据集 数据标注 数据训练 合成数据

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