Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Standart | Premium
Bu makalede, Azure API Management'ta API trafiğinizin karbon ayak izini azaltmanıza yardımcı olan özellikler tanıtılır. Api trafiğini farklı Azure bölgelerindeki karbon emisyonlarına göre ayarlamak için bu özellikleri kullanın.
Uyarı
- Çevresel sürdürülebilirlik özellikleri şu anda sınırlı önizleme aşamasındadır. Kaydolmak için formu doldurun.
- Bu özellikler şu anda Azure API Management klasik katmanlarında (Geliştirici, Temel, Standart, Premium) belirli bölgelerde kullanılabilir.
Sürdürülebilir API'ler hakkında
Kuruluşlar, dijital altyapıları aracılığıyla çevre üzerindeki etkilerini azaltmaya giderek daha fazla odaklanmaktadır.
API Management, aşağıdakilere yardımcı olan özelliklerle bu hedeflere ulaşmanızı sağlar:
- API trafiğini karbon yoğunluğuna göre arka uç bölgelerine yeniden yönlendirme ve yük dengelemesi yapma
- API Management hizmetinizin bölgesindeki karbon emisyonlarına göre API trafiğini şekillendirme
API'lerinizin çevresel faktörlere göre trafiği işleme şeklini iyileştirerek şunları yapabilirsiniz:
- API trafiğinizin karbon emisyonlarını azaltma
- Kurumsal sürdürülebilirlik girişimlerini ve çevresel taahhütleri destekleme
- Paydaşlara çevre sorumluluğunu gösterme
Trafik kaydırma
Trafik kaydırma, desteklenen bir Azure bölgesinde karbon yoğunluğu bilgileri sağlayan bir arka uç kaynağı yapılandırmayı gerektirir. Ardından yük dengeli arka uç havuzunda, karbon yoğunluğu kategorilerinden birini kullanarak bölgeselleştirilmiş arka uç için kabul edilebilir maksimum karbon emisyon düzeyini belirtin.
Bu özellik, mevcut yük dengeleme ve yönlendirme stratejilerinizle birlikte, görece daha yüksek karbon emisyonu olan bölgelerde arka uçlara gelen trafiği dışlamanıza yardımcı olur.
Çalışma zamanında:
- API Management, trafiği "yeşil" arka uçlara yönlendirmek için en iyi çabayı gösterir (belirtilen eşiklerinizin altındaki emisyonlara sahip bölgelerde) ve "kirli" arka uçları (belirtilen eşiklerin üzerindeki emisyonlara sahip bölgelerde) dışlar.
- API Management, hizmet sürekliliğini sağlamak için belirli koşullar altında trafiği "kirli" arka uçlara yönlendirir( örneğin, tüm bölgeselleştirilmiş arka uçlar "kirli" olduğunda ve diğer arka uçlar kullanılamaz olduğunda).
Yapılandırma örneği
İlk olarak, isteğe bağlı özelliğini ayarlayarak azureRegion bir arka uç yapılandırın:
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2024-10-01-preview",
"name": "sustainable-backend",
"properties": {
"url": "https://mybackend.example.com",
"protocol": "http",
"azureRegion": "westeurope",
[...]
}
}
Ardından, yük dengeli bir havuzda bölgeselleştirilmiş arka ucu kullanın ve bir preferredCarbonEmission özelliği kullanarak emisyon eşiğini tanımlayın.
Eğer westeurope bölgesindeki karbon yoğunluğu Medium'i aşarsa, sustainable-backend'ye olan trafik, havuzdaki diğer arka uçlarla karşılaştırıldığında dışlanır.
{
[...]
"properties": {
"description": "Load balancer for multiple backends",
"type": "Pool",
"pool": {
"services": [
{
"id": "<sustainable-backend-id>",
"weight": 1,
"priority": 1,
"preferredCarbonEmission": "Medium"
}
{
"id": "<regular-backend-id>",
"weight": 1,
"priority": 1
}
{
"id": "<fallback-backend-id>",
"weight": 1,
"priority": 2
}
]
}
}
}
Trafik şekillendirme
Trafik şekillendirme, API Management hizmetinizin bölgesindeki (veya bölgelerindeki) göreli karbon emisyon düzeylerine göre API davranışını ayarlamanıza olanak tanır. API Management, API Management örneğinin geçerli context.Deployment.SustainabilityInfo.CurrentCarbonIntensity gösteren bağlam değişkenini kullanıma sunar.
Çok bölgeli dağıtımlarda ağ geçidi, çalıştığı ilgili bölgenin karbon yoğunluğunu sağlar.
Düşük karbon emisyonu dönemlerinde daha yoğun trafik işlemeyi etkinleştirmek veya yüksek karbon emisyonları sırasında işlemeyi azaltmak için ilkelerinizde bu bağlam değişkenini kullanın.
Örnek: Yüksek karbon emisyon dönemlerinde davranışı ayarlama
Aşağıdaki örnekte API Management önbellek sürelerini uzatır, daha katı hız sınırlaması uygular ve yüksek karbon emisyon dönemlerinde günlüğe kaydetme ayrıntılarını azaltır.
<policies>
<inbound>
<base />
<choose>
<when condition="@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity == CarbonIntensityCategory.High)">
<!-- Policies for high carbon emission periods -->
<cache-store duration="3600" />
<rate-limit-by-key calls="100" renewal-period="60" counter-key="@(context.Request.IpAddress)" />
<set-variable name="enableDetailedLogging" value="false" />
</when>
<when condition="@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity == CarbonIntensityCategory.Medium)">
<!-- Policies for medium carbon emission periods -->
<cache-store duration="1800" />
<rate-limit-by-key calls="200" renewal-period="60" counter-key="@(context.Request.IpAddress)" />
<set-variable name="enableDetailedLogging" value="true" />
</when>
<otherwise>
<!-- Policies for low carbon emission periods -->
<cache-store duration="900" />
<rate-limit-by-key calls="300" renewal-period="60" counter-key="@(context.Request.IpAddress)" />
<set-variable name="enableDetailedLogging" value="true" />
</otherwise>
</choose>
<!-- Use the logging variable elsewhere -->
<choose>
<when condition="@(context.Variables.GetValueOrDefault<bool>("enableDetailedLogging"))">
<log-to-eventhub logger-id="detailed-logger">
@{
return JObject.FromObject(context).ToString();
}
</log-to-eventhub>
</when>
<otherwise>
<log-to-eventhub logger-id="basic-logger">
@{
var log = new JObject();
log["requestId"] = context.RequestId;
log["method"] = context.Request.Method;
log["url"] = context.Request.Url.ToString();
log["statusCode"] = context.Response.StatusCode;
return log.ToString();
}
</log-to-eventhub>
</otherwise>
</choose>
</inbound>
[...]
</policies>
Örnek: Karbon yoğunluğu bilgilerini arka uçtan veya günlüklere yayma
Aşağıdaki örnek, geçerli karbon yoğunluğuna nasıl erişilip arka uç sistemine ve günlüklerde nasıl yayılacağı gösterilmektedir.
<policies>
[...]
<outbound>
<base />
<set-header name="X-Sustainability-CarbonEmission" exists-action="override">
<value>@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity.ToString())</value>
</set-header>
</outbound>
[...]
</policies>
Örnek: Karbon yoğunluğuna göre izleme detay seviyesini ayarlama
Aşağıdaki örnekte, özel bir izlemede yayılan bilgi miktarını ayarlamak için geçerli karbon yoğunluğu bilgilerinin nasıl kullanılacağı gösterilmektedir.
<policies>
[...]
<inbound>
<base />
<choose>
<when condition="@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity >= CarbonIntensityCategory.High)">
<trace source="Orders API" severity="verbose">
<message>Lead Created</message>
</trace>
</when>
<otherwise>
<trace source="Orders API" severity="information">
<message>Lead Created</message>
</trace>
</otherwise>
</choose>
</inbound>
[...]
</policies>
Bölgesel kullanılabilirlik
Aşağıdaki tablo şunu gösterir:
- API Management Klasik katmanlarındaki (Geliştirici, Temel, Standart, Premium) örneklerin sürdürülebilirlik özelliklerini desteklediği bölgeler (önizleme için kaydoldıktan sonra)
- Karbon emisyonlarının yoğunluğu hakkında bilgilerin kullanılabildiği bölgeler, örneğin trafik kaydırma için bölgeselleştirilmiş arka uçlar oluşturmak için
| Bölge | API Management desteği | Karbon yoğunluğu bilgileri |
|---|---|---|
| Orta Avustralya | ✅ | |
| Orta Avustralya 2 | ✅ | |
| Australia East | ✅ | ✅ |
| Australia Southeast | ✅ | ✅ |
| Güney Brezilya | ✅ | ✅ |
| Brezilya Güneydoğu | ✅ | |
| Canada Central | ✅ | |
| Canada East | ✅ | ✅ |
| Orta Hindistan | ✅ | ✅ |
| Central US | ✅ | ✅ |
| Şili Orta | ✅ | |
| Doğu Asya | ✅ | |
| East US | ✅ | ✅ |
| Doğu ABD 2 | ✅ | ✅ |
| Orta Fransa | ✅ | |
| Güney Fransa | ✅ | ✅ |
| Almanya Kuzey | ✅ | |
| Almanya Batı Merkez | ✅ | ✅ |
| Orta Endonezya | ✅ | |
| Israel Central | ✅ | ✅ |
| Italy North | ✅ | ✅ |
| Japonya Doğu | ✅ | ✅ |
| Japonya Batısı | ✅ | ✅ |
| Jio Orta Hindistan | ✅ | |
| Jio Hindistan Batı | ✅ | ✅ |
| Korea Central | ✅ | |
| Güney Kore | ✅ | |
| Malezya Güney | ✅ | |
| Mexico Central | ✅ | ✅ |
| Yeni Zelanda Kuzey | ✅ | ✅ |
| ABD'nin Kuzey Orta Bölgesi | ✅ | |
| Kuzey Avrupa | ✅ | ✅ |
| Norway East | ✅ | ✅ |
| Batı Norveç | ✅ | |
| Orta Polonya | ✅ | ✅ |
| Qatar Central | ✅ | ✅ |
| Güney Afrika - Kuzey | ✅ | ✅ |
| Güney Afrika Batı | ✅ | |
| ABD'nin Güney Merkez Bölgesi | ✅ | |
| South India | ✅ | ✅ |
| Güneydoğu Asya | ✅ | |
| Spain Central | ✅ | ✅ |
| Orta İsveç | ✅ | ✅ |
| Güney İsveç | ✅ | |
| Switzerland North | ✅ | ✅ |
| Switzerland West | ✅ | ✅ |
| Tayvan Kuzey | ✅ | ✅ |
| Tayvan Kuzeybatı | ✅ | |
| Tayvan Batı | ✅ | |
| UAE Central | ✅ | |
| Birleşik Arap Emirlikleri Kuzey | ✅ | ✅ |
| UK South | ✅ | ✅ |
| UK West | ✅ | ✅ |
| Orta Batı ABD | ✅ | ✅ |
| West Europe | ✅ | ✅ |
| West India | ✅ | |
| West US | ✅ | ✅ |
| Batı ABD 2 | ✅ | ✅ |
| Batı ABD 3 | ✅ | ✅ |
Karbon yoğunluğu kategorileri
Aşağıdaki tabloda trafik kaydırma ve trafik şekillendirme özelliklerinde kullanılan karbon yoğunluğu kategorileri açıklanmaktadır. Değerler, kapsam 2 emisyonları için KWh başına CO₂e gram olarak verilmektedir.
| Kategori | g CO₂e |
|---|---|
| Yok | Mevcut Değil |
| Çok Düşük | ≤ 150 |
| Low | 151-300 |
| Orta | 301-500 |
| High | 501-700 |
| Çok Yüksek | > 700 |