Abrufen von Auslastungsdatensätzen eines Kunden für Azure
Gilt für: Partner Center | Partner Center für Microsoft Cloud for US Government
Mithilfe der Azure-Nutzungs-API können Sie die Auslastungsdatensätze des Azure-Abonnements eines Kunden für einen bestimmten Zeitraum abrufen.
Voraussetzungen
Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.
Eine Kunden-ID (
customer-tenant-id
). Wenn Sie die KUNDEN-ID nicht kennen, können Sie sie im Partner Center nachschlagen, indem Sie den Arbeitsbereich "Kunden " und dann den Kunden aus der Kundenliste und dann "Konto" auswählen. Suchen Sie auf der Seite "Konto" des Kunden im Abschnitt "Kundenkontoinformationen" nach der Microsoft-ID. Die Microsoft-ID entspricht der Kunden-ID (customer-tenant-id
).Ein Abonnementbezeichner.
Diese API gibt täglichen und stündlich nicht bewerteten Verbrauch für eine beliebige Zeitspanne zurück. Diese API wird jedoch für Azure-Pläne nicht unterstützt. Wenn Sie über einen Azure-Plan verfügen, lesen Sie stattdessen die Artikel " Rechnung nicht abgerechnete Verbrauchspositionen abrufen" und "Rechnungsabrechnungspositionen ". In diesen Artikeln wird beschrieben, wie Sie den bewerteten Verbrauch täglich pro Meter pro Ressource erhalten. Dieser Zinsverbrauch entspricht den täglichen Getreidedaten, die von der Azure-Auslastungs-API bereitgestellt werden. Sie müssen den Rechnungsbezeichner verwenden, um in Rechnung gestellte Nutzungsdaten abzurufen. Sie können auch die aktuellen und vorherigen Zeiträume verwenden, um nicht berechnete Nutzungsschätzungen zu erhalten. Stündliche Korndaten und beliebige Datumsbereichsfilter werden für Azure-Planabonnementressourcen derzeit nicht unterstützt.
Azure-Nutzungs-API
Diese Azure-Nutzungs-API bietet Zugriff auf Nutzungsdatensätze für einen Zeitraum, der angibt, wann die Auslastung im Abrechnungssystem gemeldet wurde. Sie bietet Zugriff auf dieselben Nutzungsdaten, die zum Erstellen und Berechnen der Abstimmungsdatei verwendet werden. Sie verfügt jedoch nicht über Kenntnisse der Logik für die Abrechnungssystem-Abstimmungsdatei. Sie sollten nicht erwarten, dass die Zusammenfassungsergebnisse der Abstimmungsdatei dem Ergebnis entsprechen, das genau für denselben Zeitraum von dieser API abgerufen wurde.
Das Abrechnungssystem verwendet beispielsweise dieselben Nutzungsdaten und wendet Verspätetheitsregeln an, um zu bestimmen, was in einer Abstimmungsdatei berücksichtigt wird. Wenn ein Abrechnungszeitraum geschlossen wird, wird die gesamte Nutzung bis zum Ende des Tages, an dem der Abrechnungszeitraum endet, in der Abstimmungsdatei enthalten. Jede verspätete Nutzung innerhalb des Abrechnungszeitraums, der innerhalb von 24 Stunden nach Ablauf des Abrechnungszeitraums gemeldet wird, wird in der nächsten Abstimmungsdatei berücksichtigt. Die Verspätetkeitsregeln für die Abrechnung des Partners finden Sie unter Abrufen von Verbrauchsdaten für ein Azure-Abonnement.
Diese REST-API wird ausgelagert. Wenn die Antwortnutzlast größer als eine einzelne Seite ist, müssen Sie dem nächsten Link folgen, um die nächste Seite der Verwendungsdatensätze abzurufen.
Szenario: Partner A hat den Besitz der Abrechnung des Azure Legacy-Abonnements (145P) an Partner B übertragen.
Wenn ein Partner den Besitz eines Azure Legacy-Abonnements an einen anderen Partner überträgt, ruft der neue Partner die Nutzungs-API für das übertragene Abonnement auf, muss er die Commerce-Abonnement-ID (die im Partner Center-Konto angezeigt wird) anstelle der Azure-Berechtigungs-ID verwenden. Azure-Berechtigungs-ID wird nur für Partner B angezeigt, wenn sie Administrator im Auftrag von (AOBO) für die Azure-Portal des Kunden sind.
Um die Nutzungs-API für das übertragene Abonnement erfolgreich aufzurufen, muss der neue Partner die Commerce-Abonnement-ID verwenden.
C#
So rufen Sie die Azure-Auslastungsdatensätze ab:
Rufen Sie die Kunden-ID und die Abonnement-ID ab.
Rufen Sie die IAzureUtilizationCollection.Query-Methode auf, um eine ResourceCollection zurückzugeben, die die Auslastungsdatensätze enthält.
Rufen Sie einen Azure-Auslastungsdatensatz auf, um die Auslastungsseiten zu durchlaufen. Dieser Schritt ist erforderlich, da die Ressourcenauflistung ausgelagert wird.
- Beispiel: Konsolentest-App
- Projekt: Partner Center SDK-Beispiele
- 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
Das Partner Center Java SDK kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, Standard von der Partnercommunity unterstützt und nicht offiziell von Microsoft unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Issue auf GitHub öffnen, wenn ein Problem auftritt.
Um die Azure Utilization Records abzurufen, benötigen Sie zuerst einen Kundenbezeichner und einen Abonnementbezeichner. Rufen Sie dann die IAzureUtilizationCollection.query-Funktion auf, um eine ResourceCollection zurückzugeben, die die Auslastungsdatensätze enthält. Da die Ressourcenauflistung ausgelagert wird, müssen Sie einen Azure-Auslastungsdatensatzenumerator zum Durchlaufen der Auslastungsseiten abrufen.
// 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
Das Partner Center PowerShell-Modul kann zum Verwalten von Partner Center-Ressourcen verwendet werden. Es handelt sich um ein Open-Source-Projekt, Standard von der Partnercommunity unterstützt und nicht offiziell von Microsoft unterstützt wird. Sie können Hilfe von der Community erhalten oder ein Issue auf GitHub öffnen, wenn ein Problem auftritt.
Um die Azure Utilization Records abzurufen, benötigen Sie zuerst einen Kundenbezeichner und einen Abonnementbezeichner. Anschließend rufen Sie get-PartnerCustomerSubscriptionUtilization auf. Mit diesem Befehl werden alle Datensätze zurückgegeben, die für den angegebenen Zeitraum verfügbar sind.
# $customerId
# $subscriptionId
Get-PartnerCustomerSubscriptionUtilization -CustomerId $customerId -SubscriptionId $subscriptionId -StartDate (Get-Date).AddDays(-2).ToUniversalTime() -Granularity Hourly -ShowDetails
REST-Anforderung
Anforderungssyntax
Methode | Anforderungs-URI |
---|---|
GET | {Basis-URL}/v1/customers/{Kundenmandanten-ID}/subscriptions/{Abonnement-ID}/utilizations/azure?start_time={Startzeit}&end_time={Endzeit}&granularity={Granularität}&show_details={True} |
URI-Parameter
Verwenden Sie die folgenden Pfad- und Abfrageparameter, um die Auslastungsdatensätze abzurufen.
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
customer-tenant-id | Zeichenfolge | Ja | Eine GUID-formatierte Zeichenfolge, die den Kunden identifiziert. |
subscription-id | Zeichenfolge | Ja | Eine GUID-formatierte Zeichenfolge, die das Abonnement identifiziert. |
start_time | Zeichenfolge im UTC-Datum-Uhrzeit-Offsetformat | Ja | Der Anfang des Zeitraums, der angibt, wann die Auslastung im Abrechnungssystem gemeldet wurde. |
end_time | Zeichenfolge im UTC-Datum-Uhrzeit-Offsetformat | Ja | Das Ende des Zeitraums, der angibt, wann die Auslastung im Abrechnungssystem gemeldet wurde. |
Granularität | Zeichenfolge | Nein | Definiert die Granularität der Verwendungsaggregationen. Verfügbare Optionen sind: daily (Standard) und hourly . |
show_details | boolean | Nein | Gibt an, ob die Verwendungsdetails auf Instanzebene abgerufen werden sollen. Der Standardwert ist true . |
Größe | Zahl | Nein | Gibt die Anzahl der von einem einzigen API-Aufruf zurückgegebenen Aggregationen an. Der Standardwert lautet 1000. Die maximale Größe beträgt 1000. |
Anforderungsheader
Weitere Informationen finden Sie unter Partner Center-REST-Header.
Anforderungstext
Keine
Beispiel für eine Anfrage
Die folgende Beispielanforderung erzeugt Ergebnisse ähnlich wie die Abstimmungsdatei für den Zeitraum 7/2 - 8/1. Diese Ergebnisse stimmen möglicherweise nicht genau überein (einzelheiten hierzu finden Sie im Abschnitt Azure-Auslastungs-API ).
Diese Beispielanforderung gibt Nutzungsdaten zurück, die im Abrechnungssystem zwischen 7/2 um 12 Uhr (UTC) und 8/2 um 12 Uhr (UTC) gemeldet wurden.
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-Antwort
Bei erfolgreicher Ausführung gibt die Methode eine Sammlung von Azure Utilization Record-Ressourcen im Antworttext zurück. Wenn die Azure-Nutzungsdaten noch nicht in einem abhängigen System bereit sind, gibt diese Methode einen HTTP-Statuscode 204 mit einem Retry-After-Header zurück.
Erfolgs- und Fehlercodes der Antwort
Jede Antwort enthält einen HTTP-Statuscode, der Aufschluss darüber gibt, ob der Vorgang erfolgreich war, sowie ggf. zusätzliche Debuginformationen. Verwenden Sie ein Netzwerkablaufverfolgungstool, um den HTTP-Statuscode, den Fehlercodetyp und zusätzliche Parameter zu lesen.
Beispielantwort
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"
}
}
]
}