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 API voor Azure-gebruik.

Vereisten

  • Referenties zoals beschreven in verificatie in partnercentrum. 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 het 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 de artikelen Niet-gefactureerde verbruiksregelitems ophalen en Gefactureerde verbruiksregelitems ophalen . In deze artikelen wordt beschreven hoe u een beoordeeld verbruik op dagelijks niveau per meter per resource kunt krijgen. Dit tariefverbruik is gelijk aan de dagelijkse gegevens die worden geleverd door de Azure-gebruiks-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. Gegevens per uur 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-abonnement voor de late tijdregels van hoe de partner wordt gefactureerd.

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 de gebruiks-API aanroepen voor een overgedragen abonnement, in plaats van de Azure-rechten-id (die wordt weergegeven in het Partnercentrum-account). Azure-rechten-id wordt alleen weergegeven voor Partner B wanneer deze namens (AOBO) zijn Beheer naar de Azure-portal van de klant.

Als u de API voor het overgedragen abonnement wilt aanroepen, moet de nieuwe partner de id van het commerceabonnement gebruiken.

C#

De Azure-gebruiksrecords verkrijgen:

  1. Haal de klant-id en abonnements-id op.

  2. Roep de methode IAzureUtilizationCollection.Query aan om een ResourceCollection te retourneren die de gebruiksrecords bevat.

  3. Haal een Azure-gebruiksrecord-enumerator op om de gebruikspagina's te doorlopen. Deze stap is vereist, omdat de resourceverzameling wordt gepaginad.

  • Voorbeeld: Consoletest-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 gepaginad, moet u vervolgens een Azure-gebruiksrecord-enumerator verkrijgen om de gebruikspagina's te doorlopen.

// 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 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 het gebruik Get-PartnerCustomerSubscriptionU aan. 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

Wijze Aanvraag-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-parameters

Gebruik het volgende pad en de queryparameters om de gebruiksrecords op te halen.

Name Type Vereist Beschrijving
klant-tenant-id tekenreeks Ja Een tekenreeks met GUID-indeling die de klant identificeert.
subscription-id tekenreeks Ja Een tekenreeks met GUID-indeling die het abonnement identificeert.
begintijd tekenreeks in utc-datum/tijd-offsetnotatie Ja Het begin van het tijdsbereik dat aangeeft wanneer het gebruik is gerapporteerd in het factureringssysteem.
end_time tekenreeks in utc-datum/tijd-offsetnotatie Ja Het einde van het tijdsbereik dat aangeeft wanneer het gebruik is gerapporteerd in het factureringssysteem.
Granulariteit tekenreeks Nee Definieert de granulariteit van gebruiksaggregaties. Beschikbare opties zijn: daily (standaard) en hourly.
show_details boolean Nee Hiermee geeft u op of de gebruiksgegevens op exemplaarniveau moeten worden weergegeven. De standaardwaarde is true.
size Nummer 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 Rest-headers in Partnercentrum voor meer informatie.

Aanvraagtekst

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/FC8F8908-F918-4406-AF13-D5BC0FE41865/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: a687bc47-8d08-4b78-aff6-5a59aa2055c2
X-Locale: en-US
Host: api.partnercenter.microsoft.com

REST-antwoord

Als dit lukt, retourneert deze methode een verzameling 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 header Opnieuw proberen na.

Geslaagde antwoorden en foutcodes

Elk antwoord wordt geleverd met een HTTP-statuscode die aangeeft dat de fout is geslaagd of mislukt en aanvullende informatie over foutopsporing. Gebruik een hulpprogramma voor netwerktracering om de HTTP-statuscode, het foutcodetype en aanvullende parameters te lezen.

Responsvoorbeeld

HTTP/1.1 200 OK
Content-Length: 2630
Content-Type: application/json; charset=utf-8
MS-CorrelationId: a687bc47-8d08-4b78-aff6-5a59aa2055c2
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/ab7e2384-eeee-489a-a14f-1eb41ddd261d/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
        "location": "azurestack",
        "partNumber": "",
        "orderNumber": "",
        "additionalInfo": {
          "azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
          "azureStack.SubscriptionId": "dbd1aa30-e40d-4436-b465-3a8bc11df027",
          "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/ab7e2384-eeee-489a-a14f-1eb41ddd261d/resourcegroups/system.local/providers/Microsoft.Storage/storageaccounts/srphealthaccount",
        "location": "azurestack",
        "partNumber": "",
        "orderNumber": "",
        "additionalInfo": {
          "azureStack.MeterId": "09F8879E-87E9-4305-A572-4B7BE209F857",
          "azureStack.SubscriptionId": "dbd1aa30-e40d-4436-b465-3a8bc11df027",
          "azureStack.Location": "local",
          "azureStack.EventDateTime": "06/05/2017 06:00:00"
        },
        "attributes": {
          "objectType": "AzureUtilizationRecord"
        }
      },

      "links": {
        "self": {
          "uri": "customers/E499C962-9218-4DBA-8B83-8ADC94F47B9F/subscriptions/FC8F8908-F918-4406-AF13-D5BC0FE41865/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"
      }
    }
  ]
}