我正在尝试获得所有OnDemand /共享租赁/非RI实例的pricePerUnit:USD每小时费用;每种类型一个价格。以下代码是我目前的代码:
import boto3
import sys
client = boto3.client('pricing')
response = client.get_products(
ServiceCode='AmazonEC2',
Filters=[
{'Type': 'TERM_MATCH', 'Field': 'instanceType', 'Value': 'm4.xlarge' },
{'Type' :'TERM_MATCH', 'Field':'operatingSystem', 'Value': 'Windows' },
{'Type' :'TERM_MATCH', 'Field':'location', 'Value': 'US East (N. Virginia)' },
{'Type' :'TERM_MATCH', 'Field':'tenancy', 'Value': 'Shared' },
{'Type' :'TERM_MATCH', 'Field':'rateCode', 'Value': 'Q49VKFFWC877GUFC.JRTCKXETXF.6YS6EN2CT7' }
],
FormatVersion='aws_v1'
)
我正在使用此代码块来检索美元价值:
for key, values in response.items():
if key == 'PriceList':
for x in values:
print(float(x['USD']), 2)
不幸的是我收到了这个错误:
Traceback (most recent call last):
File "C:\bin\AWSpricing.py", line 31, in <module>
print(float(x['USD']), 2)
TypeError: string indices must be integers
感谢您提供任何帮助。
答案 0 :(得分:1)
您的代码没有意义。
响应的内容是多维的。您需要遍历树以进入相应的USD
字段:
{u'FormatVersion': u'aws_v1', u'PriceList': [u'{
"product": {
"productFamily": "Compute Instance",
"attributes": {
"enhancedNetworkingSupported": "Yes",
"memory": "16 GiB",
"dedicatedEbsThroughput": "750 Mbps",
"vcpu": "4",
"capacitystatus": "Used",
"locationType": "AWS Region",
"storage": "EBS only",
"instanceFamily": "General purpose",
"operatingSystem": "Windows",
"physicalProcessor": "Intel Xeon E5-2676 v3 (Haswell)",
"clockSpeed": "2.4 GHz",
"ecu": "13",
"networkPerformance": "High",
"servicename": "Amazon Elastic Compute Cloud",
"instanceType": "m4.xlarge",
"tenancy": "Shared",
"usagetype": "BoxUsage:m4.xlarge",
"normalizationSizeFactor": "8",
"processorFeatures": "Intel AVX; Intel AVX2; Intel Turbo",
"servicecode": "AmazonEC2",
"licenseModel": "No License required",
"currentGeneration": "Yes",
"preInstalledSw": "NA",
"location": "US East (N. Virginia)",
"processorArchitecture": "64-bit",
"operation": "RunInstances:0002"
},
"sku": "Q49VKFFWC877GUFC"
},
"serviceCode": "AmazonEC2",
"terms": {
"OnDemand": {
"Q49VKFFWC877GUFC.JRTCKXETXF": {
"priceDimensions": {
"Q49VKFFWC877GUFC.JRTCKXETXF.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "$0.384 per On Demand Windows m4.xlarge Instance Hour",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.JRTCKXETXF.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.3840000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2018-04-01T00:00:00Z",
"offerTermCode": "JRTCKXETXF",
"termAttributes": {}
}
},
"Reserved": {
"Q49VKFFWC877GUFC.4NA7Y494T4": {
"priceDimensions": {
"Q49VKFFWC877GUFC.4NA7Y494T4.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.4NA7Y494T4.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.3079000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "4NA7Y494T4",
"termAttributes": {
"LeaseContractLength": "1yr",
"OfferingClass": "standard",
"PurchaseOption": "No Upfront"
}
},
"Q49VKFFWC877GUFC.HU7G6KETJZ": {
"priceDimensions": {
"Q49VKFFWC877GUFC.HU7G6KETJZ.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.HU7G6KETJZ.2TG2D8R56U",
"pricePerUnit": {
"USD": "1323"
}
},
"Q49VKFFWC877GUFC.HU7G6KETJZ.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.HU7G6KETJZ.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.1510000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "HU7G6KETJZ",
"termAttributes": {
"LeaseContractLength": "1yr",
"OfferingClass": "standard",
"PurchaseOption": "Partial Upfront"
}
},
"Q49VKFFWC877GUFC.6QCMYABX3D": {
"priceDimensions": {
"Q49VKFFWC877GUFC.6QCMYABX3D.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.6QCMYABX3D.2TG2D8R56U",
"pricePerUnit": {
"USD": "2625"
}
},
"Q49VKFFWC877GUFC.6QCMYABX3D.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.6QCMYABX3D.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.0000000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "6QCMYABX3D",
"termAttributes": {
"LeaseContractLength": "1yr",
"OfferingClass": "standard",
"PurchaseOption": "All Upfront"
}
},
"Q49VKFFWC877GUFC.Z2E3P23VKM": {
"priceDimensions": {
"Q49VKFFWC877GUFC.Z2E3P23VKM.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.Z2E3P23VKM.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.2834000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "Z2E3P23VKM",
"termAttributes": {
"LeaseContractLength": "3yr",
"OfferingClass": "convertible",
"PurchaseOption": "No Upfront"
}
},
"Q49VKFFWC877GUFC.MZU6U2429S": {
"priceDimensions": {
"Q49VKFFWC877GUFC.MZU6U2429S.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.MZU6U2429S.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.0000000000"
}
},
"Q49VKFFWC877GUFC.MZU6U2429S.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.MZU6U2429S.2TG2D8R56U",
"pricePerUnit": {
"USD": "7205"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "MZU6U2429S",
"termAttributes": {
"LeaseContractLength": "3yr",
"OfferingClass": "convertible",
"PurchaseOption": "All Upfront"
}
},
"Q49VKFFWC877GUFC.BPH4J8HBKS": {
"priceDimensions": {
"Q49VKFFWC877GUFC.BPH4J8HBKS.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.BPH4J8HBKS.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.2704000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "BPH4J8HBKS",
"termAttributes": {
"LeaseContractLength": "3yr",
"OfferingClass": "standard",
"PurchaseOption": "No Upfront"
}
},
"Q49VKFFWC877GUFC.NQ3QZPMQV9": {
"priceDimensions": {
"Q49VKFFWC877GUFC.NQ3QZPMQV9.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.NQ3QZPMQV9.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.0000000000"
}
},
"Q49VKFFWC877GUFC.NQ3QZPMQV9.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.NQ3QZPMQV9.2TG2D8R56U",
"pricePerUnit": {
"USD": "6430"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "NQ3QZPMQV9",
"termAttributes": {
"LeaseContractLength": "3yr",
"OfferingClass": "standard",
"PurchaseOption": "All Upfront"
}
},
"Q49VKFFWC877GUFC.VJWZNREJX2": {
"priceDimensions": {
"Q49VKFFWC877GUFC.VJWZNREJX2.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.VJWZNREJX2.2TG2D8R56U",
"pricePerUnit": {
"USD": "2777"
}
},
"Q49VKFFWC877GUFC.VJWZNREJX2.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.VJWZNREJX2.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.0000000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-10-31T23:59:59Z",
"offerTermCode": "VJWZNREJX2",
"termAttributes": {
"LeaseContractLength": "1yr",
"OfferingClass": "convertible",
"PurchaseOption": "All Upfront"
}
},
"Q49VKFFWC877GUFC.38NPMPTW36": {
"priceDimensions": {
"Q49VKFFWC877GUFC.38NPMPTW36.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.38NPMPTW36.2TG2D8R56U",
"pricePerUnit": {
"USD": "3419"
}
},
"Q49VKFFWC877GUFC.38NPMPTW36.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.38NPMPTW36.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.1300000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2016-11-30T23:59:59Z",
"offerTermCode": "38NPMPTW36",
"termAttributes": {
"LeaseContractLength": "3yr",
"OfferingClass": "standard",
"PurchaseOption": "Partial Upfront"
}
},
"Q49VKFFWC877GUFC.R5XV2EPZQZ": {
"priceDimensions": {
"Q49VKFFWC877GUFC.R5XV2EPZQZ.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.R5XV2EPZQZ.2TG2D8R56U",
"pricePerUnit": {
"USD": "3627"
}
},
"Q49VKFFWC877GUFC.R5XV2EPZQZ.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.R5XV2EPZQZ.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.1380000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-04-30T23:59:59Z",
"offerTermCode": "R5XV2EPZQZ",
"termAttributes": {
"LeaseContractLength": "3yr",
"OfferingClass": "convertible",
"PurchaseOption": "Partial Upfront"
}
},
"Q49VKFFWC877GUFC.7NE97W5U4E": {
"priceDimensions": {
"Q49VKFFWC877GUFC.7NE97W5U4E.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.7NE97W5U4E.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.3265000000"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-10-31T23:59:59Z",
"offerTermCode": "7NE97W5U4E",
"termAttributes": {
"LeaseContractLength": "1yr",
"OfferingClass": "convertible",
"PurchaseOption": "No Upfront"
}
},
"Q49VKFFWC877GUFC.CUZHX8X6JH": {
"priceDimensions": {
"Q49VKFFWC877GUFC.CUZHX8X6JH.6YS6EN2CT7": {
"unit": "Hrs",
"endRange": "Inf",
"description": "Windows (Amazon VPC), m4.xlarge reserved instance applied",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.CUZHX8X6JH.6YS6EN2CT7",
"beginRange": "0",
"pricePerUnit": {
"USD": "0.1599000000"
}
},
"Q49VKFFWC877GUFC.CUZHX8X6JH.2TG2D8R56U": {
"unit": "Quantity",
"description": "Upfront Fee",
"appliesTo": [],
"rateCode": "Q49VKFFWC877GUFC.CUZHX8X6JH.2TG2D8R56U",
"pricePerUnit": {
"USD": "1400"
}
}
},
"sku": "Q49VKFFWC877GUFC",
"effectiveDate": "2017-10-31T23:59:59Z",
"offerTermCode": "CUZHX8X6JH",
"termAttributes": {
"LeaseContractLength": "1yr",
"OfferingClass": "convertible",
"PurchaseOption": "Partial Upfront"
}
}
}
},
"version": "20180410013226",
"publicationDate": "2018-04-10T01:32:26Z"
}'
], 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '713af440-4cc4-11e8-82b6-c71b4ccc4334', 'HTTPHeaders': {'x-amzn-requestid': '713af440-4cc4-11e8-82b6-c71b4ccc4334', 'date': 'Mon,
30 Apr 2018 22: 18: 42 GMT', 'content-length': '10290', 'content-type': 'application/x-amz-json-1.1'
}
}
}