Korzystając z interfejsu API cen zbiorczych Aws , mogę pobrać JSON tylko dla jednego regionu, więc szukam szczegółów cenowych dla wszystkich regionów w sposób programowy za pomocą Pythona.
Z góry dziękuję.
2 odpowiedzi
Tak jak podano w dokumentach:
import boto3
client = boto3.client('pricing')
response = client.describe_services(
ServiceCode='string',
FormatVersion='string',
NextToken='string',
MaxResults=123
)
Wystarczy mieć zmienną env z wybranym regionem: AWS_DEFAULT_REGION
Lub możesz ustawić region na samym kliencie:
client = boto3.client('pricing', region_name='us-west-2')
Bez używania boto:
my_region = "us-west-1"
url = f"https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/{my_region}/index.json"
result = requests.get(url)
Poniższy kod pobierze szczegóły cenowe dotyczące instancji terminów On-Demand i Reserved dla różnych regionów i zapisze w moim systemie lokalnym
import boto3
from boto3.session import Session
import requests
import json
import datetime
s = Session()
ec2AvailableRegions = []
def getAvailableRegionsForAService(serviceName):
try:
if serviceName == "ec2":
global ec2AvailableRegions
ec2AvailableRegions = s.get_available_regions(serviceName)
except Exception as ex:
print(ex)
print("Exception occured while fetching the available region for the service "+serviceName)
getAvailableRegionsForAService('ec2')
print("AmazonEC2 Available Regions : "+str(ec2AvailableRegions))
for region in ec2AvailableRegions:
url = "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonEC2/current/{0}/index.json"
url = url.format(region)
print(region)
print(url)
print(datetime.datetime.now())
response = requests.get(url)
open('A:\Office\index'+region+".json", 'wb').write(response.content)
print(datetime.datetime.now())
Podobne pytania
Nowe pytania
python-3.x
W przypadku pytań dotyczących programowania w języku Python, które są specyficzne dla wersji 3+ tego języka. Użyj bardziej ogólnego tagu [python] we wszystkich pytaniach Pythona i dodaj ten tylko, jeśli twoje pytanie dotyczy wersji. Użyj znaczników [python-2.x] w pytaniach o Python 2.