Hämta en kunds användningsposter för Azure
Gäller för: Partnercenter | Partnercenter för Microsoft Cloud for US Government
Du kan hämta användningsposter för en kunds Azure-prenumeration under en angiven tidsperiod med hjälp av API:et för Azure-användning.
Förutsättningar
Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående app och autentiseringsuppgifter för App+User.
Ett kund-ID (
customer-tenant-id
). Om du inte känner till kundens ID kan du söka efter det i Partnercenter genom att välja arbetsytan Kunder , sedan kunden från kundlistan och sedan Konto. På kundens kontosida letar du efter Microsoft-ID :t i avsnittet Kundkontoinformation . Microsoft-ID:t är samma som kund-ID :t (customer-tenant-id
).En prenumerationsidentifierare.
Det här API:et returnerar daglig och timlös förbrukning under ett godtyckligt tidsintervall. Det här API:et stöds dock inte för Azure-planer. Om du har en Azure-plan kan du läsa artiklarna Hämta förbrukningsradartiklar som inte fakturerats och Hämta fakturerade förbrukningsradobjekt i stället. I de här artiklarna beskrivs hur du får en beräknad förbrukning på daglig nivå per mätare per resurs. Den här hastighetsförbrukningen motsvarar de dagliga korndata som tillhandahålls av AZURE-användnings-API:et. Du måste använda fakturaidentifieraren för att hämta fakturerade användningsdata. Eller så kan du använda aktuella och tidigare perioder för att få obefakturerade användningsuppskattningar. Intervallfilter för varje timme och godtyckliga datumintervall stöds för närvarande inte för azure-prenumerationsresurser.
API för Azure-användning
Det här AZURE-användnings-API:et ger åtkomst till användningsposter under en tidsperiod som representerar när användningen rapporterades i faktureringssystemet. Den ger åtkomst till samma användningsdata som används för att skapa och beräkna avstämningsfilen. Den har dock ingen kunskap om fillogik för faktureringssystemavstämning. Du bör inte förvänta dig att sammanfattningsresultaten för avstämningsfilen matchar resultatet som hämtats från det här API:et exakt under samma tidsperiod.
Faktureringssystemet tar till exempel samma användningsdata och tillämpar regler för fördröjning för att avgöra vad som redovisas i en avstämningsfil. När en faktureringsperiod stängs inkluderas all användning fram till slutet av den dag då faktureringsperioden slutar i avstämningsfilen. Eventuell sen användning inom faktureringsperioden som rapporteras inom 24 timmar efter faktureringsperiodens slut redovisas i nästa avstämningsfil. Information om hur sent partnern debiteras finns i Hämta förbrukningsdata för en Azure-prenumeration.
Det här REST-API:et är paged. Om svarsnyttolasten är större än en enda sida måste du följa nästa länk för att hämta nästa sida med användningsposter.
Scenario: Partner A har överfört faktureringsägarskapet för Azure Legacy Subscription (145P) till Partner B
Om en partner överför faktureringsägarskapet för en äldre Azure-prenumeration till en annan partner måste den nya partnern, när den nya partnern anropar Api för användning för överförda prenumerationer, använda handelsprenumerations-ID (som visas i deras Partnercenter-konto) i stället för Azure-berättigande-ID:t. Azure-berättigande-ID visas endast för Partner B när de är administratör för (AOBO) till kundens Azure-portal.
För att kunna anropa API:et för användning för den överförda prenumerationen måste den nya partnern använda handelsprenumerations-ID:t.
C#
Så här hämtar du Azure Utilization Records:
Hämta kund-ID och prenumerations-ID.
Anropa metoden IAzureUtilizationCollection.Query för att returnera en ResourceCollection som innehåller användningsposterna.
Hämta en uppräkningsverktyget för Azure-användningsposter för att bläddra igenom användningssidorna. Det här steget krävs eftersom resurssamlingen är växlingsfil.
- Exempel: Konsoltestapp
- Projekt: SDK-exempel för Partnercenter
- Klass: GetAzureSubscriptionUtilization.cs
// IAggregatePartner partnerOperations;
// string customerId;
// string subscriptionId;
IPartner partner = PartnerService.Instance.CreatePartnerOperations(credentials);
// Retrieve the utilization records for the last year in pages of 100 records.
var utilizationRecords = partner.Customers[customerId].Subscriptions[subscriptionId].Utilization.Azure.Query(
DateTimeOffset.Now.AddYears(-1),
DateTimeOffset.Now,
size: 100);
// Create an Azure utilization enumerator which will aid us in traversing the utilization pages.
var utilizationRecordEnumerator = partner.Enumerators.Utilization.Azure.Create(utilizationRecords);
while (utilizationRecordEnumerator.HasValue)
{
//
// Insert code here to work with this page.
//
// Get the next page.
utilizationRecordEnumerator.Next();
}
Java
Java SDK för Partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
För att hämta Azure Utilization Records behöver du först en kundidentifierare och en prenumerationsidentifierare. Sedan anropar du funktionen IAzureUtilizationCollection.query för att returnera en ResourceCollection som innehåller användningsposterna. Eftersom resurssamlingen är sidsidig måste du sedan hämta en Uppräkning av Azure-användningsposter för att kunna bläddra igenom användningssidorna.
// IAggregatePartner partnerOperations;
// String customerId;
// String subscriptionId;
ResourceCollection<AzureUtilizationRecord> utilizationRecords = partnerOperations.getCustomers()
.byId(customerId).getSubscriptions().byId(subscriptionId)
.getUtilization().getAzure().query(
new DateTime().minusYears(1),
new DateTime(),
AzureUtilizationGranularity.Daily,
true,
100);
// Create an Azure utilization enumerator which will aid us in traversing the utilization pages
IResourceCollectionEnumerator<ResourceCollection<AzureUtilizationRecord>> utilizationRecordEnumerator =
partnerOperations.getEnumerators().getUtilization().getAzure().create(utilizationRecords);
while (utilizationRecordEnumerator.hasValue())
{
//
// Insert code here to work with this page.
//
// get the next page
utilizationRecordEnumerator.next();
}
PowerShell
PowerShell-modulen partnercenter kan användas för att hantera Partnercenter-resurser. Det är ett projekt med öppen källkod som underhålls av partnercommunityn och stöds inte officiellt av Microsoft. Du kan få hjälp från communityn eller öppna ett problem på GitHub om du får problem.
För att hämta Azure Utilization Records behöver du först en kundidentifierare och en prenumerationsidentifierare. Sedan anropar du Get-PartnerCustomerSubscriptionUtilization. Det här kommandot returnerar alla poster som är tillgängliga under den angivna tidsperioden.
# $customerId
# $subscriptionId
Get-PartnerCustomerSubscriptionUtilization -CustomerId $customerId -SubscriptionId $subscriptionId -StartDate (Get-Date).AddDays(-2).ToUniversalTime() -Granularity Hourly -ShowDetails
REST-begäran
Syntax för begäran
Metod | URI för förfrågan |
---|---|
GET | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/utilizations/azure?start_time={start-time}&end_time={end-time}&granularity={granularity}&show_details={True} |
URI-parametrar
Använd följande sökväg och frågeparametrar för att hämta användningsposterna.
Namn | Typ | Obligatoriskt | Beskrivning |
---|---|---|---|
customer-tenant-id | sträng | Ja | En GUID-formaterad sträng som identifierar kunden. |
prenumerations-ID | sträng | Ja | En GUID-formaterad sträng som identifierar prenumerationen. |
start_time | sträng i UTC-förskjutningsformat | Ja | Början av tidsintervallet som representerar när användningen rapporterades i faktureringssystemet. |
end_time | sträng i UTC-förskjutningsformat | Ja | Slutet av tidsintervallet som representerar när användningen rapporterades i faktureringssystemet. |
Granularitet | sträng | Nej | Definierar kornigheten för användningsaggregeringar. Tillgängliga alternativ är: daily (standard) och hourly . |
show_details | boolean | Nej | Anger om användningsinformationen på instansnivå ska hämtas. Standardvärdet är true . |
storlek | Nummer | Nej | Anger antalet sammansättningar som returneras av ett enda API-anrop. Standardvärdet är 1000. Maxvärdet är 1 000. |
Begärandehuvuden
Mer information finns i REST-huvuden för Partnercenter.
Begärandetext
Ingen
Exempel på begäran
Följande exempelbegäran ger resultat som liknar vad avstämningsfilen kommer att visa för perioden 7/2–8/1. Dessa resultat kanske inte matchar exakt (se avsnittet Api för Azure-användning för mer information).
Den här exempelbegäran returnerar användningsdata som rapporteras i faktureringssystemet mellan 7/2 kl. 12.00 (UTC) och 8/2 kl. 12.00 (UTC).
GET https://api.partnercenter.microsoft.com/v1/customers/E499C962-9218-4DBA-8B83-8ADC94F47B9F/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/utilizations/azure?start_time=2017-07-02T00:00:00-08:00&end_time=2017-08-02T00:00:00-08:00 HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: e6a3b6b2-230a-4813-999d-57f883b60d38
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
REST-svar
Om det lyckas returnerar den här metoden en samling Azure Utilization Record-resurser i svarstexten. Om Azure-användningsdata ännu inte är klara i ett beroende system returnerar den här metoden en HTTP-statuskod 204 med huvudet Försök efter igen.
Svarsframgång och felkoder
Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och ytterligare felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa HTTP-statuskoden, felkodstypen och ytterligare parametrar.
Svarsexempel
HTTP/1.1 200 OK
Content-Length: 2630
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: e6a3b6b2-230a-4813-999d-57f883b60d38
MS-CV: PjuGoYrw806o6A3Y.0
MS-ServerId: 030020525
Date: Fri, 04 Aug 2017 23:48:28 GMT
{
"totalCount": 2,
"items": [
{
"usageStartTime": "2017-06-07T17:00:00-07:00",
"usageEndTime": "2017-06-08T17:00:00-07:00",
"resource": {
"id": "8767aeb3-6909-4db2-9927-3f51e9a9085e",
"name": "Storage Admin",
"category": "Storage",
"subcategory": "Block Blob",
"region": "Azure Stack"
},
"quantity": 0.217790327034891,
"unit": "1 GB/Hr",
"infoFields": {},
"instanceData": {
"resourceUri": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
"location": "azurestack",
"partNumber": "",
"orderNumber": "",
"additionalInfo": {
"azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
"azureStack.SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"azureStack.Location": "local",
"azureStack.EventDateTime": "06/05/2017 06:00:00"
}
},
"attributes": {
"objectType": "AzureUtilizationRecord"
}
},
{
"usageStartTime": "2017-06-07T17:00:00-07:00",
"usageEndTime": "2017-06-08T17:00:00-07:00",
"resource": {
"id": "8767aeb3-6909-4db2-9927-3f51e9a9085e",
"name": "Storage Admin",
"category": "Storage",
"subcategory": "Block Blob",
"region": "Azure Stack"
},
"quantity": 0.217790327034891,
"unit": "1 GB/Hr",
"infoFields": {},
"instanceData": {
"resourceUri": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
"location": "azurestack",
"partNumber": "",
"orderNumber": "",
"additionalInfo": {
"azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
"azureStack.SubscriptionId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"azureStack.Location": "local",
"azureStack.EventDateTime": "06/05/2017 06:00:00"
},
"attributes": {
"objectType": "AzureUtilizationRecord"
}
},
"links": {
"self": {
"uri": "customers/E499C962-9218-4DBA-8B83-8ADC94F47B9F/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/utilizations/azure?start_time=2017-06-10T00:00:00Z&end_time=2017-07-09T00:00:00Z&granularity=Daily&show_details=True&size=1000",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
]
}