Aracılığıyla paylaş


Müşterinin Azure kullanım kayıtlarını alma

Şunlar için geçerlidir: İş Ortağı Merkezi | ABD Kamu için Microsoft Bulut İş Ortağı Merkezi

Bir müşterinin belirli bir zaman aralığındaki Azure aboneliği kullanım kayıtlarını almak için Azure kullanım API’sini kullanabilirsiniz.

Önkoşullar

  • İş Ortağı Merkezi kimlik doğrulamasında açıklandığı gibi kimlik bilgileri. Bu senaryo hem tek başına uygulama hem de App+User kimlik bilgileriyle kimlik doğrulamayı destekler.

  • Müşteri kimliği (customer-tenant-id). Müşterinin kimliğini bilmiyorsanız, İş Ortağı Merkezi'nde Müşteriler çalışma alanını, ardından müşteri listesinden müşteriyi ve ardından Hesap'ı seçerek bunu arayabilirsiniz. Müşterinin Hesap sayfasında, Müşteri Hesabı Bilgileri bölümünde Microsoft Kimliği'ni arayın. Microsoft Kimliği, müşteri kimliğiyle (customer-tenant-id) aynıdır.

  • Abonelik tanımlayıcısı.

Bu API, rastgele bir zaman aralığı için günlük ve saatlik olarak eşitlenmemiş tüketim döndürür. Ancak bu API, Azure planları için desteklenmez. Azure planınız varsa Fatura faturalanmamış tüketim satırı öğelerini alma ve Faturalandırılan tüketim satırı öğelerini alma makalelerine bakın. Bu makalelerde, kaynak başına ölçüm başına günlük düzeyde derecelendirilmiş tüketimin nasıl alındığı açıklanmaktadır. Bu oran tüketimi, Azure kullanım API'sinin sağladığı günlük veri miktarına eşdeğerdir. Faturalanan kullanım verilerini almak için fatura tanımlayıcısını kullanmanız gerekir. Alternatif olarak, faturalanmamış kullanım tahminlerini almak için geçerli ve önceki dönemleri de kullanabilirsiniz. Saatlik veri ve rastgele tarih aralığı filtreleri şu anda Azure planı abonelik kaynakları için desteklenmemektedir.

Azure kullanım API’si

Bu Azure kullanım API'si, kullanımın faturalama sisteminde bildirildiği zamanı temsil eden bir süre için kullanım kayıtlarına erişim sağlar. Mutabakat dosyasını oluşturmak ve hesaplamak için kullanılan kullanım verilerine erişim sağlar. Ancak faturalama sistemi mutabakat dosyası mantığı hakkında bilgi sahibi değildir. Mutabakat dosyası özet sonuçlarının bu API'den alınan sonuçla tam olarak aynı zaman aralığı için eşleşmesini beklememelisiniz.

Örneğin, faturalama sistemi aynı kullanım verilerini alır ve bir mutabakat dosyasında neyin hesaba dahil olduğunu belirlemek için geçlik kuralları uygular. Faturalama dönemi kapatıldığında, faturalama döneminin sona erecek olduğu günün sonuna kadar olan tüm kullanım mutabakat dosyasına eklenir. Faturalama döneminin sona ermesinin ardından 24 saat içinde bildirilen faturalama dönemi içindeki geç kullanımlar, sonraki mutabakat dosyasında hesaba eklenir. İş ortağının faturalanma şekline ilişkin geçlik kuralları için bkz . Azure aboneliği için tüketim verilerini alma.

Bu REST API'ye sayfa eklenir. Yanıt yükü tek bir sayfadan büyükse, sonraki kullanım kayıtlarının sayfasını almak için sonraki bağlantıyı izlemeniz gerekir.

Senaryo: İş Ortağı A, Azure Eski Aboneliğinin (145P) faturalama sahipliğini İş Ortağı B'ye aktardı

İş ortağı eski Azure aboneliğinin faturalama sahipliğini başka bir iş ortağına aktarırsa, yeni iş ortağı aktarılan abonelik için Kullanım API'sini çağırdığında, Azure Yetkilendirme Kimliği yerine Ticaret Abonelik Kimliğini (İş Ortağı Merkezi hesabında gösterilir) kullanması gerekir. Azure Yetkilendirme Kimliği, İş Ortağı B için yalnızca müşterinin Azure portalında (AOBO) adına Yönetici olduğunda görünür.

Aktarılan aboneliğin Kullanım API'sini başarıyla çağırmak için yeni iş ortağının Ticaret Aboneliği Kimliğini kullanması gerekir.

C#

Azure Kullanım Kayıtlarını almak için:

  1. Müşteri kimliğini ve abonelik kimliğini alın.

  2. Kullanım kayıtlarını içeren bir ResourceCollection döndürmek için IAzureUtilizationCollection.Query yöntemini çağırın.

  3. Kullanım sayfalarında gezinmek için bir Azure kullanım kaydı numaralandırıcısı edinin. Kaynak koleksiyonu sayfalandığından bu adım gereklidir.

  • Örnek: Konsol test uygulaması
  • Proje: İş Ortağı Merkezi SDK Örnekleri
  • Sınıf: 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

İş Ortağı Merkezi Java SDK'sı, İş Ortağı Merkezi kaynaklarını yönetmek için kullanılabilir. İş ortağı topluluğu tarafından sürdürülen ve Microsoft tarafından resmi olarak desteklenmeyen açık kaynaklı bir projedir. Bir sorunla karşılaşırsanız topluluktan yardım alabilir veya GitHub'da bir sorun açabilirsiniz.

Azure Kullanım Kayıtları'nı almak için önce bir müşteri tanımlayıcısı ve bir abonelik tanımlayıcısı gerekir. Ardından, kullanım kayıtlarını içeren bir ResourceCollection döndürmek için IAzureUtilizationCollection.query işlevini çağırırsınız. Kaynak koleksiyonu sayfalandırıldığı için, kullanım sayfalarından geçiş yapmak için bir Azure kullanım kaydı numaralandırıcısı edinmeniz gerekir.

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

İş Ortağı Merkezi PowerShell modülü, İş Ortağı Merkezi kaynaklarını yönetmek için kullanılabilir. İş ortağı topluluğu tarafından sürdürülen ve Microsoft tarafından resmi olarak desteklenmeyen açık kaynaklı bir projedir. Bir sorunla karşılaşırsanız topluluktan yardım alabilir veya GitHub'da bir sorun açabilirsiniz.

Azure Kullanım Kayıtları'nı almak için önce bir müşteri tanımlayıcısı ve bir abonelik tanımlayıcısı gerekir. Ardından Get-PartnerCustomerSubscriptionUtilization öğesini çağırırsınız. Bu komut, belirtilen süre boyunca kullanılabilen tüm kayıtları döndürür.

# $customerId
# $subscriptionId

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

REST isteği

İstek söz dizimi

Metot İstek URI'si
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 parametreleri

Kullanım kayıtlarını almak için aşağıdaki yolu ve sorgu parametrelerini kullanın.

Adı Tür Zorunlu Açıklama
customer-tenant-id string Yes Müşteriyi tanımlayan GUID biçimli bir dize.
subscription-id string Yes Aboneliği tanımlayan GUID biçimli bir dize.
start_time UTC tarih-saat uzaklık biçimindeki dize Yes Kullanımın faturalama sisteminde ne zaman bildirildiğini gösteren zaman aralığının başlangıcı.
end_time UTC tarih-saat uzaklık biçimindeki dize Yes Kullanımın faturalama sisteminde ne zaman bildirildiğini gösteren zaman aralığının sonu.
Taneciklilik Dize Hayır Kullanım toplamalarının ayrıntı düzeyini tanımlar. Kullanılabilir seçenekler şunlardır: daily (varsayılan) ve hourly.
show_details boolean Hayır Örnek düzeyi kullanım ayrıntılarının alınıp alınmayacağını belirtir. Varsayılan değer: true.
size numara Hayır Tek bir API çağrısı tarafından döndürülen toplama sayısını belirtir. Varsayılan değer 1000’dir. En fazla 1000.

İstek üst bilgileri

Daha fazla bilgi için bkz . İş Ortağı Merkezi REST üst bilgileri.

Request body

Hiçbiri

İstek örneği

Aşağıdaki örnek istek, mutabakat dosyasının 7/2 - 8/1 dönemi için gösterileceğine benzer sonuçlar üretir. Bu sonuçlar tam olarak eşleşmeyebilir (ayrıntılar için Azure kullanım API'si bölümüne bakın).

Bu örnek istek, faturalama sisteminde 2/7/12 (UTC) ile 8/2 arasında saat 12:00 (UTC) arasında bildirilen kullanım verilerini döndürür.

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 yanıtı

Başarılı olursa, bu yöntem yanıt gövdesindeki Azure Kullanım Kaydı kaynaklarının bir koleksiyonunu döndürür. Azure kullanım verileri bağımlı bir sistemde henüz hazır değilse, bu yöntem Retry-After üst bilgisi içeren bir HTTP Durum Kodu 204 döndürür.

Yanıt başarısı ve hata kodları

Her yanıt, başarılı veya başarısız olduğunu belirten bir HTTP durum kodu ve ek hata ayıklama bilgileriyle birlikte gelir. HTTP durum kodunu, hata kodu türünü ve ek parametreleri okumak için bir ağ izleme aracı kullanın.

Yanıt örneği

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