Um Preise in der Microsoft Azure Cloud zu ermitteln bietet Microsoft mit https://azure.microsoft.com/pricing/calculator/ eine Möglichkeit die gewünschten Komponenten für eine Zielarchitektur zusammenzuklicken um initial ein grobes Preisgefühl für die Clouddienste zu bekommen.
Neben diverser Preis APIs und Rechnungs APIs welche ein vorheriges Einloggen und damit auch vorhandene Credentials voraussetzen bietet der Kalkulator auch eine versteckte API, welche jeder nutzen kann. Diese API ist leider aktuell nicht dokumentiert, das holen wir jetzt nach.
Beim Zugriff auf die Seite lassen sich die entsprechenden API Aufrufe um an ein aktuelles Preisblatt zu den gewünschten Kosten auslesen.
Beim Hinzufügen einer „Azure SQL Database“ Komponente wird folgender API Call ausgeführt:
https://azure.microsoft.com/api/v3/pricing/sql-database/calculator/?culture=de-de&discount=mosp
Der Call besteht also aus folgenden Teilen:
- https://azure.microsoft.com/api/ → Azure API URL, bleibt einheitlich
- v3/ → API Version, variiert i.d.R zwischen v2 und v3
- pricing/ → bleibt einheitlich
- sql-database/ → abgefragte Komponente, kann unter anderem auch „managed-disks“ oder „virtual-machines“ sein
- calculator/ → bleibt einheitlich
- ?culture=de-de&discount=mosp → optionale Zusatzparameter um bspw. die Sprache auszuwählen oder ein Liezensmodel wie Microsoft Online Services-Abonnementvertrag (MOSP) für die Preise auszuwählen
Das Ergebnis dieses Aufrufs wird einheitlich im JSON Format und mit USD geliefert.
Achtung: Das JSON Format an sich variiert in der Version 2 und 3 und nicht jede Komponente ist in jeder Version vorhanden.
Im Beispiel finden sich die Preise im JSON Object offers, darunter sind die ServiceTiers aufgelistet, beispielsweise single-dtu-basic-b. Gefolgt vom Bereich prices, der die Abrechnungsart perhour enthält. Anschließend noch die Region auswählen, europe-west z.B. und dann value.
Im ganzen würde es dann so aussehen:
offers.single-dtu-basic-b.prices.perhour.europe-west.value mit dem Preis von 0.0067083333333333387 USD pro Stunde.
Validieren lässt sich das Ganze durch einen Vergleich im Azure Calculator.
Eine Liste der möglichen Komponenten um die entsprechenden Abfragen auszuführen:
- virtual-machines
- storage
- sql-database
- app-service
- cosmos-db
- kubernetes-service
- functions
- cognitive-services
- cost-management
- virtual-machine-scale-sets
- service-fabric
- container-instances
- batch
- cloud-services
- azure-vmware-cloudsimple
- virtual-network
- load-balancer
- application-gateway
- vpn-gateway
- dns
- cdn
- ddos-protection
- traffic-manager
- expressroute
- network-watcher
- bandwidth
- ip-addresses
- azure-firewall
- virtual-wan
- frontdoor
- azure-bastion
- data-lake-store
- storsimple
- data-share
- netapp
- api-management
- search
- signalr-service
- notification-hubs
- app-center
- azure-maps
- container-registry
- openshift
- mysql
- mariadb
- postgresql
- sql-data-warehouse
- database-migration
- redis-cache
- sql-server-stretch-database
- databricks
- hdinsight
- machine-learning-service
- stream-analytics
- data-lake-analytics
- event-hubs
- power-bi-embedded
- analysis-services
- data-catalog
- bot-service
- data-explorer
- data-factory
- genomics
- machine-learning-studio
- open-datasets
- iot-hub
- iot-edge
- iot-central
- digital-twins
- time-series-insights
- event-grid
- logic-apps
- windows-10-iot-core
- service-bus
- active-directory
- active-directory-b2c
- security-center
- key-vault
- azure-devops
- lab-services
- app-configuration
- monitor
- advisor
- backup
- azure-policy
- site-recovery
- automation
- managed-applications
- azure-migrate
- scheduler
- azure-lighthouse
- media-services
- blockchain-service