-
-
Save matschaffer/4912279e49dce41ab9b2 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash | |
URL="http://a0.awsstatic.com/pricing/1/ec2/ri-v2/linux-unix-shared.min.js" | |
(echo 'function callback(data) { console.log(JSON.stringify(data)); }'; curl -s "$URL") |\ | |
node |\ | |
jq -r '.config.regions[] | | |
select(.region == "us-east-1") | | |
.instanceTypes[] | | |
[ | |
.type, | |
( .terms[] | select(.term == "yrTerm1") | .onDemandHourly[].prices.USD ), | |
( | |
.terms[] | select(.term == "yrTerm1") | .purchaseOptions | | |
map(.valueColumns[] | select(.name == "effectiveHourly") | .prices.USD)[] | |
), | |
( | |
.terms[] | select(.term == "yrTerm3") | .purchaseOptions | | |
map(.valueColumns[] | select(.name == "effectiveHourly") | .prices.USD)[] | |
) | |
] | | |
join("\t") | |
' |
See my updated version:
https://gist.github.com/abcarroll/86850dc3cb4d449719888ba6a213b051
- Fixes where amazon changed json node keys to to "yrTerm1Standard" .. etc and broke it entirely
- Also fixes the nano alignment issue
Note to anyone interested, these files are available for all AWS services that I can find.... But not all easily compatible/using the same node tree.
Just go to the AWS pricing page of your choice and view source, and find "data-model". You will find one file for every single PricingTable/Tab combo. For example MySQL standard deployments (single AZ) is:
http://a0.awsstatic.com/pricing/1/rds/mysql/pricing-standard-deployments.min.js
One small possible positive note -- it seems the URL/filenames themselves do follow a bit of a pattern. So it should be easy to generate them. If you had time and a little more powerful of a programming language, you could do great things.
This is great, but when listing the t2.nano, the columns aren't aligned. I'd fix it, but I'm not node.js experienced. :-(