REST API kullanarak emisyon verilerini dışarı aktarma
REST API kullanarak emisyon verilerini dışarı aktarmak için bir hizmet sorumlusu oluşturup emisyon verilerinize erişme yetkisi vermeniz gerekir. Ardından hizmet sorumlusunu kullanarak yetkilendirme belirteci alabilir ve ardından REST API'yi kullanarak emisyon verilerini dışarı aktarabilirsiniz.
Emisyon verilerini dışarı aktarmak için hizmet sorumlusu oluşturma ve yetkilendirme
Hizmet sorumlusu, belirteçleri Microsoft Entra Id (eski adıyla Azure Active Directory ) kullanılarak belirli Azure kaynaklarının kimliğini doğrulamak ve erişim vermek için kullanılabilen bir uygulamadır. Kaynaklar arasında kullanıcı uygulamaları, hizmetler veya otomasyon araçları bulunur.
Kaynaklara erişebilen bir Microsoft Entra uygulaması ve hizmet sorumlusu oluşturun.
Belirteç isteklerinde kullanmak üzere uygulamanız için kiracı kimliğini, yeni istemci kimliğini ve istemci gizli anahtarı değerini kaydedin.
Emisyon verilerini dışarı aktarmak istediğiniz kaynaklar için uygulamaya Carbon Optimization Reader
rolü atanmalıdır. Uygulamayı birçok kaynağın emisyon verilerini dışarı aktarmak için kullanmayı planlıyorsanız, rolü kaynak grubu veya abonelik düzeyinde atayabilirsiniz. Daha fazla bilgi için bkz. Azure portalını kullanarak Azure rolleri atama.
Yetkilendirme belirteci alma
Komut isteminde veya Postman gibi bir istemci kullanarak aşağıdaki isteği gönderin.
curl -X POST 'https://login.microsoftonline.com/<tennant ID>/oauth2/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=<your apps client ID>' \
--data-urlencode 'client_secret=<your apps client secret' \
--data-urlencode 'resource=https://management.azure.com'
Yanıt gövdesi görüntülenir:
{
"token_type": "Bearer",
"expires_in": "86399",
"ext_expires_in": "86399",
"expires_on": "1672826207",
"not_before": "1672739507",
"resource": "https://management.azure.com",
"access_token": "eyJ0eXAiOiJKV1Qi....gpHWoRzeDdVQd2OE3dNsLIvUIxQ"
}
Aşağıdaki HTTP isteklerinde kullanmak için yanıttan erişim belirtecini kullanın.
REST API kullanarak emisyon verilerini dışarı aktarma
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview Host: management.azure.com Content-Type: application/json Authorization: Taşıyıcı <belirteç değeri>
Örnek istek
POST /providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview
Host: management.azure.com
Content-Type: application/json
Authorization: Bearer eyJ0eXAiOiJKJ...gVBNrsvg
{
"reportType": "OverallSummaryReport",
"subscriptionList": [
"abcd1234-a1b2-d3c4-e3f5-976543210abc"
],
"carbonScopeList": [
"Scope1",
"Scope2",
"Scope3"
],
"dateRange": {
"start": "2023-12-01",
"end": "2023-12-01"
}
}
curl örneği:
curl --location 'https://management.azure.com/providers/Microsoft.Carbon/carbonEmissionReports?api-version=2023-04-01-preview' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer eyJ0eXA...2-KgVBNrsvg' \
--data '{
"reportType": "OverallSummaryReport",
"subscriptionList": [
"abcd1234-a1b2-d3c4-e3f5-976543210abc"
],
"carbonScopeList": [
"Scope1",
"Scope2",
"Scope3"
],
"dateRange": {
"start": "2023-12-01",
"end": "2023-12-01"
}
}
'
Örnek çıkış
{
"value": [
{
"dataType": "OverallSummaryData",
"totalCarbonEmission": 7000.622265493289,
"totalCarbonEmission12MonthsAgo": 0,
"totalCarbonEmissionLastMonth": 7480.374908590786,
"changeRatioFor12Months": 0,
"changeRatioForLastMonth": -0.06413483935765417,
"changeValueMonthOverMonth": 0
}
]
}
Rapor türleri
Rapor türü |
Tarif |
Ne zaman kullanılır? |
OverallSummaryReport |
Girişte belirtilen tüm abonelik kapsamları ve tarih aralığı için toplam emisyon. |
Üst düzey rapor verileri gerekiyor |
MonthlySummaryReport |
Tarih aralığında belirtilen her ay için tüm abonelikler ve emisyon kapsamları için emisyonlar. |
Aylık döküm |
TopItemsSummaryReport |
Abonelikler, emisyonlar, kapsam, kategori ve belirtilen tarih aralığı genelinde toplanan ve kategoriye göre ayrılmış ilk X öğelerinin emisyonları. |
Kategoriye göre en çok kullanılan öğelere ilişkin veriler |
TopItemsMonthlySummaryReport |
Tarih aralığında belirtilen her ay için abonelikler, emisyonlar, kapsamlar ve kategoriler arasında toplanmış ilk X öğenin emisyonları. Emisyonlar kategoriye göre ayrılmıştır. En önemli X öğeleri geçen ayın emisyonlarını temel alır. |
Kategoriye ve aya göre en çok kullanılan öğelere ilişkin veriler |
ItemDetailsReport |
Belirli bir tarih aralığı için seçilen kapsamlar ve abonelikler arasında toplanan ve belirtilen kategoriye göre ayrılmış emisyonlar. |
Kategoriye göre emisyon verileri |
Emisyon API'si parametrelerini dışarı aktarma
Aşağıdaki tabloda REST API kullanarak emisyon verilerini dışarı aktarmak için kullanabileceğiniz parametreler açıklanmaktadır.
Parametre |
Tür |
Tarif |
reportType |
Dizgi |
Rapor türü adı. Desteklenen değerler: OverallSummaryReport
MonthlySummaryReport
TopItemsSummaryReport TopItemsMonthlySummaryReport ItemDetailsReport |
subscriptionList |
[Dize] |
Sorgulamak istediğiniz subscriptionId listesi. İstemcinin bu aboneliklere erişimi olmalıdır. |
resourceGroupUrlList |
[Dize] |
Veri almak istediğiniz resourceGroup url listesi. Mesela: "resourceGroupUrlList": [ "/subscriptions/sub-id-1111/resourcegroups/rg_name" ] Dizideki dize değeri şu biçimde olmalıdır: "/subscriptions/{sub_id}/resourcegroups/{rg_name}" |
carbonScopeList |
[Dize] |
Karbon kapsamı listesi. Desteklenen değerler: Scope1 , Scope2 ve Scope3 . Bu liste, bu üç kapsamın herhangi bir bileşimi olabilir. |
dateRange |
Yapı |
Son 12 ayın bir ayını destekler. Başlangıç ve bitiş ayı eşit olmalı ve ayın ilk günü olmalıdır. Bu ölçüt karşılanmadığında bir özel durum oluşturulur. Mesela dateRange": { "start": "2023-03-01", "end": "2023-03-01} start ve end biçimi: yyyy-mm-dd.
Şu anda karbon emisyonu verileri aylık olarak yenilenir. Bu nedenle, dateRange start ve end özellikleri değeri her ayın ilk günü olmalıdır. |
Not
dateRange
her seferinde bir ay (son 12 aydan itibaren) destekler. Başlangıç ve bitiş tarihleri farklı olduğunda bir özel durum oluşur.
Rapora özgü parametreler
Aşağıdaki tabloda, her rapor türü için gereken ek parametreler gösterilmektedir.
AdditionalParameter |
Tür |
Tarif |
Rapor |
categoryType |
Dizgi |
Beş kategori türü desteklenir: Subscription
Location
ServiceType
ResourceGroup
Resource
|
TopItemsSummaryReport TopItemsMonthlySummaryReport
ItemDetailsReport
|
topItemsCount |
Tam sayı |
Gösterilecek ilk x öğe (>5) |
TopItemsSummaryReport TopItemsMonthlySummaryReport
|
ItemDetailsReport |
category |
Dizgi |
Kategori adı. Örneğin, "category": "ResourceGroup" |
pageSize |
Tam sayı |
Sorgu sonucunun sayfa boyutu. Varsayılan değer 1000'dir. En yüksek değer 2000'dir. |
ItemDetailsReport |
orderBy |
Dizgi |
Desteklenen değerleri ve desteklenen Kategori Türlerini görmek için aşağıdaki tabloya bakın. |
ItemDetailsReport |
sortDirection |
Dizgi |
Destek değerleri: Desc , Asc |
ItemDetailsReport |
groupCategory |
Dizgi |
Bu boş bir dize olarak ayarlanabilir. Geçerli değerler: ResourceGroup ve SubscriptionId |
ItemDetailsReport |
Sütunlara göre sırala
Aşağıdaki sonuç sütunları orderBy
parametresini destekler.
Sütun adına göre sırala |
Kategori Türü |
Name |
Subscription dışında tümü |
TotalCarbonEmission |
tüm |
TotalCarbonEmissionLastMonth |
tüm |
ResourceGroup |
yalnızca Resource kategori için |
SubscriptionId |
Subscription , Resource ve ResourceGroup Kategorisi |
ChangeRatioForLastMonth |
tüm |
ChangeValueMonthOverMonth |
tüm |
REST API raporları hakkında daha fazla bilgi için bkz. Carbon Service - List Carbon Emission Reports.