Získání záznamů o využití Azure zákazníkem

Platí pro: Partnerské centrum | Partnerské centrum pro Microsoft Cloud pro státní správu USA

Záznamy o využití předplatného Azure zákazníka za určité časové období můžete získat pomocí rozhraní API pro využití Azure.

Požadavky

  • Přihlašovací údaje popsané v ověřování v Partnerském centru Tento scénář podporuje ověřování pomocí samostatné aplikace i přihlašovacích údajů app+user.

  • ID zákazníka (customer-tenant-id). Pokud neznáte ID zákazníka, můžete ho vyhledat v Partnerském centru tak , že vyberete pracovní prostor Zákazníci , pak zákazník ze seznamu zákazníků a pak účet. Na stránce Účet zákazníka vyhledejte ID Microsoftu v části Informace o účtu zákazníka. ID Microsoftu je stejné jako ID zákazníka (customer-tenant-id).

  • Identifikátor předplatného.

Toto rozhraní API vrací denní a hodinově nehodnocenou spotřebu pro libovolný časový rozsah. Toto rozhraní API se ale pro plány Azure nepodporuje. Pokud máte plán Azure, podívejte se na články Získání nefakturovaných řádkových položek spotřeby faktury a místo toho získejte fakturované řádkové položky spotřeby. Tyto články popisují, jak získat jmenovitou spotřebu na denní úrovni na měřič na prostředek. Tato spotřeba rychlosti odpovídá datům o denním agregačním využití, která poskytuje rozhraní API pro využití Azure. K načtení fakturovaných dat o využití budete muset použít identifikátor faktury. Nebo můžete použít aktuální a předchozí období k získání nefakturovaných odhadů využití. Pro prostředky předplatného plánu Azure se v současné době nepodporují hodinové údaje a filtry libovolného rozsahu kalendářních dat.

Rozhraní API pro využití Azure

Toto rozhraní API využití Azure poskytuje přístup k záznamům o využití za časové období, které představuje, kdy bylo využití hlášeno ve fakturačním systému. Poskytuje přístup ke stejným datům o využití, která se používají k vytvoření a výpočtu souboru odsouhlasení. Nemá ale znalosti logiky souborů s vyrovnáním fakturačního systému. Neměli byste očekávat, že výsledky souhrnu souboru s vyrovnáním odpovídají výsledkům načteným z tohoto rozhraní API přesně pro stejné časové období.

Například fakturační systém vezme stejná data o využití a použije pravidla zpoždění k určení toho, co se v souboru s vyrovnáním bere v úvahu. Když se fakturační období zavře, zahrne se do souboru odsouhlasení veškeré využití až do konce dne, kdy fakturační období skončí. Jakékoli pozdní využití v rámci fakturačního období, které se hlásí do 24 hodin po skončení fakturačního období, se započítá do dalšího souboru odsouhlasení. Pravidla zpoždění způsobu účtování partnera najdete v tématu Získání dat o spotřebě předplatného Azure.

Toto rozhraní REST API je stránkované. Pokud je datová část odpovědi větší než jedna stránka, musíte přejít na další odkaz a získat další stránku záznamů o využití.

Scénář: Partner A převedl vlastnictví fakturace předplatného Azure Legacy (145P) na partnera B

Pokud partner převede vlastnictví fakturace starší verze předplatného Azure na jiného partnera, když nový partner volá rozhraní API využití pro převedené předplatné, musí místo ID nároku Azure používat ID komerčního předplatného (které se zobrazuje ve svém účtu Partnerského centra). ID nároku Azure se zobrazí pro partnera B jenom v případě, že jsou Správa jménem (AOBO) na azure Portal zákazníka.

Aby bylo možné úspěšně volat rozhraní API pro využití převedeného předplatného, musí nový partner použít ID komerčního předplatného.

C#

Získání záznamů o využití Azure:

  1. Získejte ID zákazníka a ID předplatného.

  2. Volání IAzureUtilizationCollection.Query metoda vrátit ResourceCollection obsahující záznamy využití.

  3. Získání výčtu záznamu využití Azure pro procházení stránek využití Tento krok je povinný, protože kolekce prostředků je stránkovaná.

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

Sadu Java SDK Partnerského centra je možné použít ke správě prostředků Partnerského centra. Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na GitHubu .

K získání záznamů o využití Azure potřebujete nejprve identifikátor zákazníka a identifikátor předplatného. Potom zavoláte funkci IAzureUtilizationCollection.query , která vrátí ResourceCollection obsahující záznamy o využití. Vzhledem k tomu, že je kolekce prostředků stránkovaná, musíte získat výčet záznamů o využití Azure, abyste mohli procházet stránky využití.

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

Modul PowerShellu v Partnerském centru se dá použít ke správě prostředků Partnerského centra. Jedná se o opensourcový projekt spravovaný komunitou partnerů, který oficiálně nepodporuje Microsoft. Pokud narazíte na problém, můžete získat pomoc od komunity nebo otevřít problém na GitHubu .

K získání záznamů o využití Azure potřebujete nejprve identifikátor zákazníka a identifikátor předplatného. Pak zavoláte Get-PartnerCustomerSubscriptionUtilization. Tento příkaz vrátí všechny záznamy, které jsou k dispozici pro zadané časové období.

# $customerId
# $subscriptionId

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

Požadavek REST

Syntaxe požadavku

metoda Identifikátor URI žádosti
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}

Parametry identifikátoru URI

K získání záznamů o využití použijte následující parametry cesty a dotazu.

Name Type Požadováno Popis
customer-tenant-id string Ano Řetězec formátovaný identifikátorem GUID, který identifikuje zákazníka.
id předplatného string Ano Řetězec formátovaný identifikátorem GUID, který identifikuje předplatné.
start_time řetězec ve formátu posunu data a času UTC Ano Začátek časového rozsahu, který představuje, kdy bylo využití hlášeno ve fakturačním systému.
end_time řetězec ve formátu posunu data a času UTC Ano Konec časového rozsahu, který představuje, kdy bylo využití hlášeno ve fakturačním systému.
Rozlišovací schopnost string No Definuje členitost agregací využití. Dostupné možnosti jsou: daily (výchozí) a hourly.
show_details boolean No Určuje, jestli se mají získat podrobnosti o využití na úrovni instance. Výchozí hodnota je true.
size Číslo No Určuje počet agregací vrácených jedním voláním rozhraní API. Výchozí hodnota je 1 000. Maximální hodnota je 1000.

Záhlaví žádosti

Další informace najdete v tématu Hlavičky REST Partnerského centra.

Text požadavku

Nic

Příklad požadavku

Následující příklad požadavku vytvoří výsledky podobné tomu, co soubor odsouhlasení zobrazí pro období 7/2 – 8/1. Tyto výsledky se nemusí přesně shodovat (podrobnosti najdete v části Rozhraní API pro využití Azure).

Tento příklad požadavku vrátí data o využití hlášená ve fakturačním systému mezi 7/2 v 12:00 (UTC) a 8/2 v 12:00 (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

Odpověď REST

Pokud je tato metoda úspěšná, vrátí v textu odpovědi kolekci prostředků Azure Utilization Record . Pokud data o využití Azure ještě nejsou připravená v závislém systému, vrátí tato metoda stavový kód HTTP 204 s hlavičkou Retry-After.

Kódy úspěšnosti a chyb odpovědi

Každá odpověď obsahuje stavový kód HTTP, který označuje úspěch nebo selhání a další informace o ladění. Ke čtení stavového kódu HTTP, typu kódu chyby a dalších parametrů použijte nástroj pro trasování sítě.

Příklad odpovědi

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