Udostępnij za pośrednictwem


Uzyskiwanie rekordów użycia klienta dla platformy Azure

Dotyczy: Centrum partnerskie | Centrum partnerskie dla chmury firmy Microsoft dla instytucji rządowych USA

Możesz uzyskać rekordy wykorzystania subskrypcji platformy Azure klienta dla określonego okresu przy użyciu interfejsu API wykorzystania platformy Azure.

Warunki wstępne

  • Poświadczenia, jak opisano w Uwierzytelnianiu w Centrum Partnerskim. Ten scenariusz obsługuje uwierzytelnianie zarówno przy użyciu aplikacji autonomicznej, jak i poświadczeń aplikacji i użytkownika.

  • Identyfikator klienta (customer-tenant-id). Jeśli nie znasz identyfikatora klienta, możesz wyszukać go w centrum partnerskim , wybierając obszar roboczy Klienci, a następnie klient z listy klientów, a następnie konto. Na stronie konta klienta poszukaj identyfikatora Microsoft w sekcji informacje o koncie klienta. Identyfikator Firmy Microsoft jest taki sam jak identyfikator klienta (customer-tenant-id).

  • Identyfikator subskrypcji.

Ten interfejs API zwraca dzienne i godzinowe niesklasyfikowane zużycie dla dowolnego przedziału czasu. Jednak ten interfejs API nie jest obsługiwany w przypadku planów Azure. Jeśli masz plan platformy Azure, zapoznaj się z artykułami Pobierz pozycje niezafakturowanego zużycia i Pobierz pozycje zafakturowanego zużycia. W tych artykułach opisano, jak uzyskać oceniane zużycie na poziomie dziennym dla każdego urządzenia pomiarowego i każdego zasobu. To zużycie jest równoważne z dziennymi danymi dotyczącymi ziarna udostępnianymi przez interfejs API (Application Programming Interface) wykorzystania platformy Azure. Aby pobrać rozliczane dane użycia, musisz użyć identyfikatora faktury. Możesz też użyć bieżących i poprzednich okresów, aby uzyskać niezliczone szacunki użycia. Dane godzinowe o ziarnistości i dowolne filtry zakresu dat nie są obecnie obsługiwane dla zasobów subskrypcji planu Azure.

Interfejs API wykorzystania platformy Azure

Ten interfejs API wykorzystania platformy Azure zapewnia dostęp do rekordów wykorzystania przez okres, który reprezentuje, kiedy użycie zostało zgłoszone w systemie rozliczeniowym. Zapewnia on dostęp do tych samych danych użycia, które są używane do tworzenia i obliczania pliku uzgodnień. Nie ma jednak wiedzy na temat logiki pliku uzgodnień systemu rozliczeń. Nie należy oczekiwać, że wyniki podsumowania pliku uzgodnień będą zgodne z wynikiem pobranym z tego interfejsu API dokładnie przez ten sam okres.

Na przykład system rozliczeń pobiera te same dane użycia i stosuje reguły opóźnienia, aby określić, co jest uwzględniane w pliku uzgodnień. Po zamknięciu okresu rozliczeniowego całe zużycie do końca dnia okresu rozliczeniowego zostanie uwzględnione w pliku rozliczeniowym. Każde opóźnione użycie w okresie rozliczeniowym zgłoszonym w ciągu 24 godzin po zakończeniu okresu rozliczeniowego jest uwzględniane w następnym pliku uzgodnień. Aby uzyskać reguły naliczania za opóźnienia dotyczące sposobu rozliczania opłat dla partnera, zobacz Pobieranie danych użycia dla subskrypcji platformy Azure.

Ten interfejs API REST jest objęty mechanizmem stronicowania. Jeśli ładunek odpowiedzi jest większy niż jedna strona, musisz skorzystać z następnego linku, aby uzyskać następną stronę rekordów użycia.

Scenariusz: Partner A przeniosł własność rozliczeń starszej subskrypcji platformy Azure (145P) do partnera B

Jeśli partner przenosi własność rozliczeń starszej subskrypcji platformy Azure do innego partnera, nowy partner, gdy wywołuje interfejs API wykorzystania dla przeniesionej subskrypcji, musi używać identyfikatora subskrypcji handlowej (który jest wyświetlany na koncie Centrum partnerskiego), a nie identyfikatora upoważnienia platformy Azure. Identyfikator uprawnień platformy Azure jest wyświetlany dla partnera B tylko wtedy, gdy działają jako administrator w imieniu (AOBO) w portalu Azure klienta.

Aby pomyślnie wywołać API Użytkowania dla przeniesionej subskrypcji, nowy partner musi użyć Identyfikatora Subskrypcji Handlowej.

C#

Aby uzyskać rekordy wykorzystania platformy Azure:

  1. Pobierz identyfikator klienta i identyfikator subskrypcji.

  2. Wywołaj metodę IAzureUtilizationCollection.Query, aby zwrócić ResourceCollection, która zawiera rekordy użycia.

  3. Uzyskaj enumerator rekordów zużycia Azure, aby przeglądać strony wykorzystania. Ten krok jest wymagany, ponieważ kolekcja zasobów jest stronicowana.

  • Przykład: aplikacja testowa konsoli
  • Project: Partner Center SDK Samples ("Przykłady zestawu SDK Centrum Partnerskiego")
  • Klasa: 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();
}

Jawa

Zestaw Partner Center Java SDK może służyć do zarządzania zasobami Centrum Partnerskiego. Jest to projekt typu open source obsługiwany przez społeczność partnerów i nie jest oficjalnie obsługiwany przez firmę Microsoft. Jeśli wystąpi problem, możesz uzyskać pomoc od społeczności lub otworzyć problem w usłudze GitHub.

Aby uzyskać rekordy wykorzystania platformy Azure, najpierw potrzebujesz identyfikatora klienta i identyfikatora subskrypcji. Następnie wywołasz funkcję IAzureUtilizationCollection.query, aby zwrócić ResourceCollection, która zawiera rekordy wykorzystania. Ponieważ kolekcja zasobów jest paginowana, należy następnie uzyskać enumerator wykorzystania platformy Azure, aby przejść przez strony z danymi o wykorzystaniu.

// 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

Moduł PowerShell dla Centrum partnerskiego może służyć do zarządzania zasobami Centrum partnerskiego. Jest to projekt typu open source obsługiwany przez społeczność partnerów i nie jest oficjalnie obsługiwany przez firmę Microsoft. Jeśli wystąpi problem, możesz uzyskać pomoc od społeczności lub otworzyć problem w usłudze GitHub.

Aby uzyskać rekordy wykorzystania platformy Azure, najpierw potrzebujesz identyfikatora klienta i identyfikatora subskrypcji. Następnie wywołasz Get-PartnerCustomerSubscriptionUtilization. To polecenie zwróci wszystkie rekordy dostępne przez określony okres czasu.

# $customerId
# $subscriptionId

Get-PartnerCustomerSubscriptionUtilization -CustomerId $customerId -SubscriptionId $subscriptionId -StartDate (Get-Date).AddDays(-2).ToUniversalTime() -Granularity Hourly -ShowDetails

Żądanie REST

Składnia żądania

Metoda Identyfikator URI żądania
GET {baseURL}/v1/customers/{customer-tenant-id}/subscriptions/{subscription-id}/utilizations/azure?start_time={start-time}&end_time={end-time}&granularność={granularity}&pokaż_szczegóły={True}

Parametry identyfikatora URI

Użyj następującej ścieżki i parametrów zapytania, aby uzyskać rekordy wykorzystania.

Nazwa Typ Wymagane Opis
identyfikator najemcy-klienta struna Tak Ciąg w formacie GUID, który identyfikuje klienta.
identyfikator subskrypcji struna Tak Ciąg w formacie GUID, który identyfikuje subskrypcję.
czas rozpoczęcia ciąg w formacie przesunięcia daty i godziny UTC Tak Początek zakresu czasu, który reprezentuje, kiedy użycie zostało zgłoszone w systemie rozliczeniowym.
czas zakończenia ciąg w formacie przesunięcia daty i godziny UTC Tak Koniec zakresu czasu, który reprezentuje, kiedy użycie zostało zgłoszone w systemie rozliczeniowym.
szczegółowość struna Nie Definiuje stopień szczegółowości agregacji użycia. Dostępne opcje to: daily (ustawienie domyślne) i hourly.
pokaż szczegóły boolean Nie Określa, czy należy uzyskać szczegóły użycia na poziomie wystąpienia. Wartość domyślna to true.
rozmiar liczba Nie Określa liczbę agregacji zwracanych przez pojedyncze wywołanie interfejsu API. Wartość domyślna to 1000. Wartość maksymalna to 1000.

Nagłówki żądań

Aby uzyskać więcej informacji, zobacz sekcję Nagłówki REST Centrum partnerskiego.

Treść żądania

Żaden

Przykład żądania

Poniższe przykładowe żądanie generuje wyniki podobne do tych, które zostaną pokazane w pliku uzgodnień dla okresu 2.07 – 1.08. Te wyniki mogą nie być dokładnie zgodne (zobacz sekcję interfejsu API użycia platformy Azure, aby uzyskać szczegółowe informacje).

To przykładowe żądanie zwraca dane użycia zgłoszone w systemie rozliczeniowym między 7/2 o 12:00 (UTC) i 8/2 o 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

Odpowiedź REST

Jeśli ta metoda powiedzie się, zwraca kolekcję zasobów rekordów wykorzystania platformy Azure w treści odpowiedzi. Jeśli dane użycia platformy Azure nie są jeszcze gotowe w systemie zależnym, ta metoda zwraca kod stanu HTTP 204 z nagłówkiem Retry-After.

Kody sukcesu i błędów odpowiedzi

Każda odpowiedź zawiera kod stanu HTTP, który wskazuje powodzenie lub niepowodzenie i dodatkowe informacje o debugowaniu. Użyj narzędzia do śledzenia sieci, aby odczytać kod stanu HTTP, typ kodu błędui dodatkowe parametry.

Przykład odpowiedzi

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"
      }
    }
  ]
}