Azure Cost Management - how to match ResourceGuid with ResourceId - azure

I have a sponsored Azure subscription thanks to our partnership with Microsoft.
I have the ability to export usage from a dedicated web Site (Azure SponsorShip).
Unfortunately in the CSV file I received, I have only ResourceGUID and not ResourceId... And I don't know how to match these Ids.
Any ideas to find the Id related to a Resource Guid?
Thanks.

Resource GUID is different which denotes the Deployment GUID of the service. To get the breakdown of which resources are actually contributing towards the costs.
If you refer to the page Understand your bill for Microsoft Azure, you can see the description for the "Resource GUID" property:
The billed meter identifier. This is used as the identifier used to
price billing usage.
If you'd like to manually know the resource name which you are being billed for you can log into the Azure Account Center, click "Billing History" and download the usage details for the current period. This information is being updated daily, and you even get usage information with a daily breakdown

Related

What do the fields mean in the Azure Pricing REST API?

I wish to use the Azure Pricing REST API. It lists several fields:
Filters are supported for the following fields:
armRegionName, Location, meterId, meterName, productid, skuId, productName, skuName,
serviceName, serviceId, serviceFamily, priceType, armSkuName
Where do I find information about what these fields mean?
Is there a way to find the productName, skuName, etc. of a virtual machine that I have created on Azure?
Where do I find information about what these fields mean?
The Azure Retail Prices overview has a description of all the fields.
Is there a way to find the productName, skuName, etc. of a virtual machine that I have created on Azure?
Locate the VM in the Azure portal and check Overview > Size. The size, e.g. Standard D2s v3, corresponds with the (arm)SkuName property returned by the API. Note that the portal doesn't include all the details, so you could try Azure CLI, e.g. az resource show -g MyResourceGroup -n MyVm --resource-type "Microsoft.Compute/virtualMachines", to display more details of the specified resource.
What are you trying to accomplish?
From my best guess:
armRegionName - thats a id of region that you will use in ARM templates and Azure APis.
Location - thats a human readable name of region
meterId - Thats an id of how it will show up in your or consumption reports
meterName - same as above but human readable
productid - As I understand thats service + license. VM + Windows or + MSSQL
productName - same as above
skuId: Thats I believe and ID from Microsoft's license or contract entities
skuName: same as above
serviceId: Id of sub group of Service Family
serviceName: just a sub group of Service Family: Virtual Machines and etc
serviceFamily: just a group of services like Compute, Storage and etc
priceType - same as Type with values: DevTestConsumption, Reservation, Consumption
armSkuName - thats VM id that you will see in ARM templates or should use in Azure API calls.

How to locate quota limits for Resource Types per Resource Group?

Trying to determine what the hard limits of Resources Types are within Resource Groups.
In our instance, we're specifically looking at the Resource Provider Microsoft.Network/publicIpAddresses.
The documentation states "Varies per resource type" but doesn't provide any additional details.
https://learn.microsoft.com/en-us/azure/azure-subscription-service-limits
We are aware that the default limit is 800 resources but would like to know what the hard limit beyond this is.
Also reviewed the Azure Management REST API's and PowerShell Cmdlets but unable to locate any way of pulling this information programmatically.
You need to contact support as the article says - SO doesn't have this info. Support can also adjust the limits for certain resource types.
If you're not getting an answer from support email me: bmoore at msft

what are the values that can be passed for sku.family and sku.capacity property in azure automation account

Here is the link for the resources of template format for the creation of azure automation account.
what is sku , sku.family and sku.capacity for automation account?
https://learn.microsoft.com/en-us/azure/templates/microsoft.automation/automationaccounts/jobschedules
Normally we can create the azure automation without sku.family and sku.capacity properties.But what are the possible values that can be passed to these resources for creation of arm template.
What could be the sku.family and its corresponding sku.capacity that can be passed????
What is the use of sku.family and sku.capacity in general for azure Resources ???
As you mentioned that link, we can find Sku object as pic.
Also we can get information about an automation account ,For a Free Sku, there is a response as below:
"properties":{
"sku":{
"name":"Free",
"family":null,
"capacity":null
},
Moreover, you can get more details from this relevant schema for Automation
https://raw.githubusercontent.com/Azure/azure-resource-manager-schemas/master/schemas/2015-10-31/Microsoft.Automation.json
Hope this helps.
In Azure Automation, SKU-Family and SKU-Capacity are unrequired and are more or less placeholders - "null" accepted.
SKu-name is the only required property of type "SKuNameEnum" with 2 possible values: "Basic" & "Free"
Here are 2 sample responses showing all 3 SKU object properties and you will notice family & capacity are both "null"
For your reference, there's a public facing API Browser page (in preview) that enumerates all supported REST APIs including API properties, description, usage and response samples. Simply enter the Azure service you would like to explore in the dropdown and drill through the listed APIs. In most cases, It includes a "Tryit" workflow to test the API call.
Hope this helps.

Azure billing API : Resource RateCard & Resource Usage

I need to monitor our Azure spending for each of our client environments (one subscription, multiple resource group). In my research, I’ve found 2 API that I can use :
Resource RateCard
(https://msdn.microsoft.com/fr-fr/library/azure/mt219005)
Resource Usage (https://msdn.microsoft.com/fr-fr/library/azure/mt219003)
For the first one, I can obtain the price of each azure resource, it’s really interesting. But I cannot find a way to know what resource is related to a resource group.
I need at least the name of the resource. Is-it liked with the “MeterId” information ?
In the second one, I can obtain the usage of all azure resource. It’s perfect ! But how can I convert the resource usage in price ?
In the new azure portal (portal.azure.com), there is a section in a resource group : the billing part.
It is exactly the information that I’d like to obtain, using your API. Is it a way ?
For your first question, the RateCard API returns the list of the resources available at an Azure offer level (Pay-as-you-go, MSDN,…) and this is not specific to a customer’s subscription, so what you would get back here is the list of ALL the resources that are available for billing under an offer, along with resource metadata and prices, and this won’t have details like resource group that are specific to a customer’s subscription. One more point to note is that the resource metadata fields like Meter Name, Meter Category, Meter SubCategory can give customers a better understanding of what resource they are consuming, but this doesn’t include the instance-specific details resourceURI or resource tags.
As for the second question on the Usage API, this API returns aggregated, unrated Usage. The expectation is for the customer to get the aggregated usage data from the Usage API, then get the public rates from the RateCard API for the customer’s offer, and then do the operation of combining usage with the rate details to come up with a rated estimate.
The steps would look like this:
1) Call Usage API with specific time period and AzureSubID
2) Get the OfferID from the Azure Account Portal (go to account.windowsazure.com, select the subscription that you are interested in, bottom right corner has all the sub details including the 'OfferID' (e.g. MS-AZR-0063P)
3) Query the RateCard API with the OfferID, country, region, currency to get list of all resources available to be sold on that offer along with the associated rates, included quantity, discount etc
4) The common field across these two response would be the MeterID. You would get the usage responses with a unique MeterID which you can use to look up the RAteCard API (also called MeterID in RateCard) to get the exact rates that are applicable for this sub.
We are looking into another improvement to make Azure Usage API queryable by a billing cycle so customers don’t have to query by a date range, and they can just opt to query for a particular billing cycle’s usage data to get an exact snapshot of what they were charged that period, but we don't have a timeline on that yet.

Can Windows Azure roles detect which datacenter the roles are in?

Our Windows Azure roles need to know programmatically which datacenter the roles are in.
I know a REST API ( http://msdn.microsoft.com/en-us/library/ee460806.aspx) return location property.
And if I deploy to, let’s say, West US, the REST API returns West US as location property.
However, if I deploy to Anywhere US, the property is Anywhere US.
I would like to know which datacenter our roles are in even if location property is Anywhere US.
The reason why I ask is our roles need to download some data from Windows Azure storage.
The cost of downloading data from the same datacenter is free but the that of downloading data from the different datacenter is not free.
It is a great question and I have talked about it couple of time with different partners. Based on my understanding when you create your service and provide where you want this service to location ("South Central US" or "Anywhere US"), this information is stored at the RDFE server specific to your service in your Azure subscription. So when you choose a fixed location such as "South Central US" or "North Central US" the service actually deployed to that location and exact location is stored however when you choose "Anywhere US", the selection to choose "South Center" or "North Central" is done internally however the selected location never updated to RDFE server related to your service.
That's why whenever you try to get location info related to your service in your subscription over SM API or Powershell or any other way (even on Azure Portal it is listed as "Anywhere US" because the information is coming from same storage), you will get exactly what you have selected at first place during service creation.
#Sandrino idea will work as long as you can validate your service location IP address from a given IP address range published by Windows Azure team.
Two days ago Microsoft published an XML file containing a list of IP ranges per region. Based on this file and the IP address of your role you can find in which datacenter the role has been deployed.
<?xml version="1.0" encoding="UTF-8"?>
<regions>
...
<region name="USA">
<subregion name="South Central US">
<network>65.55.80.0/20</network>
<network>65.54.48.0/21</network>
...
</subregion>
<subregion name="North Central US">
<network>207.46.192.0/20</network>
<network>65.52.0.0/19</network>
...
</subregion>
</region>
</regions>
Note: It looks like the new datacenters (West and East US) are not covered by this XML file, which might make it useless in your case.
I had some services deployed in Anywhere US and in order to find out which data centre it was deployed in I had to log a support call with Microsoft. They were helpful and got me the information but even they had to go away and look it up. As a result of this I would never use and the the "Anywhere ..." locations. Knowing which data centre your services are running in is very important for knowing where to deploy things like SQL Azure and service bus which don't support affinity groups and don't have an Anywhere option.

Resources