Hämta en kunds användningsposter för Azure
gäller för: Partnercenter | Partnercenter för Microsofts moln för den amerikanska regeringen
Du kan hämta användningsposterna för en kunds Azure-prenumeration under en angiven tidsperiod med hjälp av Azure-användnings-API:et.
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 leta upp 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 i avsnittet Kundkontoinformation. Microsoft-ID:t är detsamma som kund-ID :t (customer-tenant-id
).En prenumerations-ID.
Det här API:et returnerar daglig och timlös förbrukning under ett godtyckligt tidsintervall. Men det här API:et stöds inte för Azure-planer. Om du har ett Azure-abonnemang kan du i stället läsa artiklarna Hämta ofakturerade förbrukningsradposter och Hämta fakturerade förbrukningsradposter. 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 förbrukningshastigheten motsvarar de dagliga korndata som tillhandahålls av Azure-användnings-API. 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. Timvisa korndata och filter för godtyckliga datumintervall stöds för närvarande inte för resurser inom Azure-planabonnemang.
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 faktureringssystemets avstämningsfillogik. 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. För svarstidsreglerna för hur partnern debiteras, se Hämta förbrukningsdata för en Azure-prenumeration.
Det här REST-API:et är paginerat. Om svarspayloaden är större än en enda sida måste du följa följande länk för att hämta nästa sida med användningsdata.
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 nyttjandeposter.
Hämta ett uppräkningsverktyg för Azure-användningsdata för att traversera användningssidorna. Det här steget krävs eftersom resurssamlingen är sidindelad.
- Exempel: konsoltestapp
- Project: Partner Center SDK-exempel
- 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 resursutnyttjandeposterna. Eftersom resurssamlingen är paginerad måste du sedan hämta en Azure-användaruppräknare för att navigera genom 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 Partner Center 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
Begärningssyntax
Metod | Förfrågnings-URI |
---|---|
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ändningsposter.
Namn | Typ | Krävs | Beskrivning |
---|---|---|---|
kund-hyresgästs-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. |
starttid | sträng i UTC datum-tidsförskjutningsformat | Ja | Början av tidsintervallet som representerar när användningen rapporterades i faktureringssystemet. |
end_time | sträng i UTC datum-tidsfö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 . |
visa_detaljer | boolesk | 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 1 000. Maxvärdet är 1 000. |
Begäranhuvuden
Mer information finns i Partnercenter REST-huvuden.
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 ett Retry-After-huvud.
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, felkodstypoch 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"
}
}
]
}