De gebruiksrecords van een klant ophalen voor Azure
van toepassing op: Partnercentrum | Partnercentrum voor Microsoft Cloud voor de Amerikaanse overheid
U kunt de gebruiksrecords van het Azure-abonnement van een klant voor een opgegeven periode ophalen met behulp van de Azure-gebruiks-API.
Voorwaarden
Referenties zoals beschreven in Partnercentrum-authenticatie. Dit scenario ondersteunt verificatie met zowel zelfstandige app- als App+User-referenties.
Een klant-id (
customer-tenant-id
). Als u de klant-id niet weet, kunt u deze opzoeken in Partnercentrum door de werkruimte Klanten te selecteren, vervolgens de klant in de lijst met klanten en vervolgens Account. Zoek op de pagina Account van de klant naar de Microsoft-id in de sectie Klantaccountgegevens. De Microsoft-id is hetzelfde als de klant-id (customer-tenant-id
).Een abonnements-id.
Deze API retourneert dagelijks en per uur niet-geclassificeerd verbruik voor een willekeurige periode. deze API wordt echter niet ondersteund voor Azure-abonnementen. Als u een Azure-abonnement hebt, raadpleegt u in plaats daarvan de artikelen Niet-gefactureerde verbruiksitems ophalen en Gefactureerde verbruiksitems ophalen. In deze artikelen wordt beschreven hoe u een geëvalueerd verbruik op dagelijks niveau per meter en per resource kunt krijgen. Deze verbruikssnelheid is gelijk aan de dagelijkse graangegevens die worden verstrekt door de Azure-omzettings-API. U moet de factuur-id gebruiken om gefactureerde gebruiksgegevens op te halen. U kunt ook huidige en vorige perioden gebruiken om schattingen van niet-gefactureerd gebruik op te halen. Uurgranulaire gegevens en willekeurige datumbereikfilters worden momenteel niet ondersteund voor Azure-abonnementsbronnen.
Azure-gebruiks-API
Deze Azure-gebruiks-API biedt toegang tot gebruiksrecords voor een periode die aangeeft wanneer het gebruik is gerapporteerd in het factureringssysteem. Het biedt toegang tot dezelfde gebruiksgegevens die worden gebruikt om het afstemmingsbestand te maken en te berekenen. Het heeft echter geen kennis van de logica van het afstemmingsbestand voor het factureringssysteem. U mag niet verwachten dat de samenvattingsresultaten van het afstemmingsbestand exact overeenkomen met het resultaat dat is opgehaald uit deze API voor dezelfde periode.
Het factureringssysteem gebruikt bijvoorbeeld dezelfde gebruiksgegevens en past laatheidsregels toe om te bepalen waarvoor rekening wordt gehouden in een afstemmingsbestand. Wanneer een factureringsperiode wordt gesloten, wordt al het gebruik tot het einde van de dag dat de factureringsperiode eindigt, opgenomen in het afstemmingsbestand. Elk laat gebruik binnen de factureringsperiode die binnen 24 uur na afloop van de factureringsperiode wordt gerapporteerd, wordt in het volgende afstemmingsbestand verwerkt. Zie Verbruiksgegevens ophalen voor een Azure-abonnementvoor de regels over te laat factureren van de partner.
Deze REST API wordt gepaginad. Als de nettolading van het antwoord groter is dan één pagina, moet u de volgende koppeling volgen om de volgende pagina met gebruiksrecords op te halen.
Scenario: Partner A heeft het eigendom van de facturering van een verouderd Azure-abonnement (145P) overgedragen aan Partner B
Als een partner het eigendom van facturering van een verouderd Azure-abonnement overdraagt aan een andere partner, moet de nieuwe partner, wanneer deze de gebruiks-API voor het overgedragen abonnement aanroept, de Commerce Subscription ID gebruiken (die in hun Partnercentrum-account verschijnt) in plaats van de Azure Entitlement ID. De Azure-entitlement-ID wordt alleen weergegeven voor Partner B wanneer deze als beheerder optreedt namens (AOBO) in de Azure-portal van de klant.
Om met succes de Utilization API voor het overgedragen abonnement aan te roepen, moet de nieuwe partner de Commerce-abonnements-ID gebruiken.
C#
De Azure-gebruiksrecords verkrijgen:
Haal de klant-id en abonnements-id op.
Roep de methode IAzureUtilizationCollection.Query aan om een ResourceCollection- te retourneren die de gebruiksrecords bevat.
Haal een Azure-gebruiksrecord-enumerator op om de gebruikspagina's te doorlopen. Deze stap is vereist, omdat de middelenverzameling is opgedeeld in pagina's.
- voorbeeld van: Console-test-app
- Project-: Voorbeelden van Partnercentrum-SDK
- Klasse: 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
De Partner Center Java SDK- kan worden gebruikt voor het beheren van Partnercentrum-resources. Het is een opensource-project dat wordt onderhouden door de partnercommunity en niet officieel wordt ondersteund door Microsoft. U kunt hulp krijgen van de community of een probleem openen op GitHub als u een probleem ondervindt.
Als u de Azure-gebruiksrecords wilt verkrijgen, hebt u eerst een klant-id en een abonnements-id nodig. Vervolgens roept u de functie IAzureUtilizationCollection.query aan om een ResourceCollection- te retourneren die de gebruiksrecords bevat. Omdat de resourceverzameling is gepagineerd, moet u vervolgens een enumerator voor Azure-gebruiksrecords verkrijgen om door de gebruikspagina's te navigeren.
// 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
De PowerShell-module van partnercentrum kan worden gebruikt voor het beheren van Partnercentrum-resources. Het is een opensource-project dat wordt onderhouden door de partnercommunity en niet officieel wordt ondersteund door Microsoft. U kunt hulp krijgen van de community of een probleem openen op GitHub als u een probleem ondervindt.
Als u de Azure-gebruiksrecords wilt verkrijgen, hebt u eerst een klant-id en een abonnements-id nodig. Vervolgens roept u de Get-PartnerCustomerSubscriptionUtilizationaan. Met deze opdracht worden alle records geretourneerd die beschikbaar zijn voor de opgegeven periode.
# $customerId
# $subscriptionId
Get-PartnerCustomerSubscriptionUtilization -CustomerId $customerId -SubscriptionId $subscriptionId -StartDate (Get-Date).AddDays(-2).ToUniversalTime() -Granularity Hourly -ShowDetails
REST-aanvraag
Aanvraagsyntaxis
Methode | Aanvraag-URI |
---|---|
GET | {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/utilizations/azure?begin_tijd={start-time}&eind_tijd={end-time}&granulariteit={granularity}&toon_details={True} |
URI-parameters
Gebruik het volgende pad en de queryparameters om de gebruiksrecords op te halen.
Naam | Typ | Vereist | Beschrijving |
---|---|---|---|
klant-tenant-ID | snaar | Ja | Een GUID-geformatteerde tekenreeks die de klant identificeert. |
abonnement-id | draad | Ja | Een tekenreeks met GUID-indeling die het abonnement identificeert. |
starttijd | tekenreeks in utc-datum/tijd-offsetnotatie | Ja | Het begin van het tijdsbereik dat aangeeft wanneer het gebruik is gerapporteerd in het factureringssysteem. |
eindtijd | tekenreeks in utc-datum/tijd-offsetnotatie | Ja | Het einde van het tijdsbereik dat aangeeft wanneer het gebruik is gerapporteerd in het factureringssysteem. |
Granulariteit | snaar | Nee | Definieert de granulariteit van gebruiksaggregaties. Beschikbare opties zijn: daily (standaard) en hourly . |
show_details | booleaans | Nee | Hiermee geeft u op of de gebruiksgegevens op exemplaarniveau moeten worden weergegeven. De standaardwaarde is true . |
grootte | getal | Nee | Hiermee geeft u het aantal aggregaties op dat wordt geretourneerd door één API-aanroep. De standaardwaarde is 1000. Het maximum is 1000. |
Aanvraagheaders
Zie Partnercentrum REST-headersvoor meer informatie.
Aanvraaginhoud
Geen
Aanvraagvoorbeeld
De volgende voorbeeldaanvraag produceert resultaten die vergelijkbaar zijn met wat het afstemmingsbestand voor de periode 7/2 - 8/1 weergeeft. Deze resultaten komen mogelijk niet exact overeen (zie de sectie Azure-gebruiks-API voor meer informatie).
Deze voorbeeldaanvraag retourneert gebruiksgegevens die zijn gerapporteerd in het factureringssysteem tussen 7/2 om 12:00 uur (UTC) en 8/2 om 12:00 uur (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-antwoord
Als dit lukt, retourneert deze methode een verzameling van Azure Utilization Record resources in de hoofdtekst van het antwoord. Als de Azure-gebruiksgegevens nog niet gereed zijn in een afhankelijk systeem, retourneert deze methode een HTTP-statuscode 204 met een Retry-After-header.
Geslaagde antwoorden en foutcodes
Elk antwoord wordt geleverd met een HTTP-statuscode die het succes of falen aangeeft en aanvullende informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om de HTTP-statuscode te lezen, foutcodetypeen aanvullende parameters.
Voorbeeld van antwoord
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"
}
}
]
}