47 votes

Existe-t-il des API pour PRIX Amazon Web Services?

Existe-t-il des API disposant de tarifs actualisés sur Amazon Web Services? Quelque chose qui peut être interrogé, par exemple, pour le dernier prix S3 pour une région donnée, ou EC2, etc.

Merci

38voto

Blairo Points 475

C'est quelque chose que j'ai demandé (par AWS, les évangélistes et les enquêtes) auparavant, mais n'a pas été à venir. Je suppose que l'AWS gens ont plus d'innovations intéressantes sur leur horizon.

Comme l'a souligné @brokenbeatnik, il existe une API pour des prix spot de l'histoire. API docs ici: http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSpotPriceHistory.html

Je trouve bizarre que le prix spot de l'histoire a un officiel de l'API, mais qu'ils n'ont pas fait ça pour les services à la demande dans le même temps. De toute façon, pour répondre à la question, oui vous pouvez interroger l' annoncés AWS prix...

Le mieux que je puisse vous arriver, c'est à partir de l'examen de la (côté client) source des différents services de tarification des pages. Il contient, vous trouverez que les tables sont construites en JS et remplie avec les données JSON, les données que vous pouvez OBTENIR vous-même. E. g.:

C'est seulement la moitié de la bataille, même si, ensuite, vous avez à choisir à part le format de l'objet pour obtenir les valeurs que vous souhaitez, par exemple, en Python, cela devient de la Hi-CPU Sur la Demande Extra-Large Linux Exemple de prix pour Virginie:

>>> import json
>>> import urllib2
>>> response = urllib2.urlopen('http://aws.amazon.com/ec2/pricing/pricing-on-demand-instances.json')
>>> pricejson = response.read()
>>> pricing = json.loads(pricejson)
>>> pricing['config']['regions'][0]['instanceTypes'][3]['sizes'][1]['valueColumns'][0]['prices']['USD']
u'0.68'

Avertissement: ceci n'est Évidemment pas une AWS sanctionné API et en tant que tel, je ne recommanderais pas prévoit une stabilité du format de données ou même de l'existence de la source. Mais il est là, et il bat la transcription des données sur les prix en statique config/fichiers source!

14voto

Spidfire Points 1132

Pour les personnes qui voulaient utiliser les données de l’API amazonienne qui utilisent des choses comme "t1.micro", voici un tableau de traduction

 type_translation = {
    'm1.small' : ['stdODI', 'sm'],
    'm1.medium' : ['stdODI', 'med'],
    'm1.large' : ['stdODI', 'lg'],
    'm1.xlarge' : ['stdODI', 'xl'],
    't1.micro' : ['uODI', 'u'],
    'm2.xlarge' : ['hiMemODI', 'xl'],
    'm2.2xlarge' : ['hiMemODI', 'xxl'],
    'm2.4xlarge' : ['hiMemODI', 'xxxxl'],
    'c1.medium' : ['hiCPUODI', 'med'],
    'c1.xlarge' : ['hiCPUODI', 'xl'],
    'cc1.4xlarge' : ['clusterComputeI', 'xxxxl'],
    'cc2.8xlarge' : ['clusterComputeI', 'xxxxxxxxl'],
    'cg1.4xlarge' : ['clusterGPUI', 'xxxxl'],
    'hi1.4xlarge' : ['hiIoODI', 'xxxx1']
}
region_translation = {
    'us-east-1' : 'us-east',
    'us-west-2' : 'us-west-2',
    'us-west-1' : 'us-west',
    'eu-west-1' : 'eu-ireland',
    'ap-southeast-1' : 'apac-sin',
    'ap-northeast-1' : 'apac-tokyo',
    'sa-east-1' : 'sa-east-1'
}
 

8voto

Eran Sandler Points 371

J'ai créer un quick & dirty API en Python pour accéder à la tarification des données dans les fichiers JSON et de la convertir vers les valeurs pertinentes (le droit des traductions et le droit des types d'instance).

Vous pouvez obtenir le code ici: https://github.com/erans/ec2instancespricing

Et de lire un peu plus sur le sujet ici: http://forecastcloudy.net/2012/04/03/quick-dirty-api-for-accessing-amazon-web-services-aws-ec2-pricing-data/

Vous pouvez utiliser ce fichier comme un module et appeler les fonctions pour obtenir un dictionnaire Python avec les résultats, ou vous pouvez l'utiliser comme un outil de ligne de commande pour obtenir la sortie est lisible par l'homme de la table, JSON ou CSV pour une utilisation en combinaison avec d'autres outils en ligne de commande.

1voto

brokenbeatnik Points 561

Je ne crois pas qu'il y a une API qui couvre les prix actuels pour les services standard. Cependant, pour EC2 en particulier, vous pouvez voir les prix spot de l'histoire, de sorte que vous n'avez pas à deviner ce que le prix du marché pour un spot instance. En savoir plus sur ce qui est disponible à:

http://docs.amazonwebservices.com/AWSEC2/latest/DeveloperGuide/using-spot-instances-history.html

1voto

user2421965 Points 11

J'ai trop besoin d'une API pour récupérer les AWS prix. J'ai été surpris de ne trouver rien surtout compte tenu du grand nombre d'Api disponibles pour les ressources AWS.

Ma langue préférée est Ruby j'ai donc écrit un Bijou à appelé AWSCosts qui fournit un accès par programme AWS prix.

Voici un exemple de la façon de trouver le prix de la demande pour un m1.moyen instance de Linux.

AWSCosts.région('us-east-1').ec2.on_demand (linux).prix ("m1.moyen")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X