Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO: Vývojář | Základní | Standardní | Premium
Tento článek představuje funkce ve službě Azure API Management, které vám pomůžou snížit uhlíkovou stopu provozu rozhraní API. Funkce slouží k úpravě provozu rozhraní API na základě emisí uhlíku v různých oblastech Azure.
Poznámka:
- Funkce udržitelnosti životního prostředí jsou v současné době ve verzi Limited Preview. Pokud se chcete zaregistrovat, vyplňte formulář.
- Tyto funkce jsou aktuálně dostupné ve vybraných oblastech v klasických úrovních služby Azure API Management (Developer, Basic, Standard, Premium).
Informace o udržitelných rozhraních API
Organizace se stále více zaměřují na snížení dopadu na životní prostředí prostřednictvím digitální infrastruktury.
Služba API Management umožňuje dosáhnout těchto cílů pomocí funkcí, které vám pomůžou:
- Přesun a vyrovnávání zatížení provozu rozhraní API do back-endových oblastí na základě intenzity emisí uhlíku
- Tvarování provozu rozhraní API na základě emisí uhlíku v oblasti služby API Management
Optimalizací způsobu, jakým vaše rozhraní API zpracovávají provoz na základě faktorů prostředí, můžete:
- Snížení emisí uhlíku provozu rozhraní API
- Podpora iniciativ v oblasti udržitelnosti podniků a závazků v oblasti životního prostředí
- Předvedení odpovědnosti za životní prostředí zúčastněným stranám
Přesouvání provozu
Posun provozu vyžaduje konfiguraci back-endového prostředku v podporované oblasti Azure , která poskytuje informace o intenzitě emisí uhlíku. Pak ve fondu back-endu s vyrovnaným zatížením určete maximální přípustnou úroveň emisí uhlíku pro regionalizovaný back-end pomocí jedné z kategorií intenzity emisí uhlíku.
Tato funkce v kombinaci se stávajícími strategiemi vyrovnávání zatížení a směrování pomáhá vyloučit provoz do back-endů v oblastech s relativně vyššími emisemi uhlíku.
Za běhu:
- SLUŽBA API Management se snaží směrovat provoz na "zelené" back-endy (v oblastech s emisemi pod zadanými prahovými hodnotami) a vylučuje "špinavé" back-endy (v oblastech s emisemi nad zadanými prahovými hodnotami).
- Služba API Management za určitých podmínek směruje provoz do "problematických" back-endů, aby zajistila kontinuitu služby – například, když jsou všechny regionalizované back-endy "problemové" a ostatní back-endy nejsou dostupné.
Příklad konfigurace
Nejprve nakonfigurujte backend v podporovaném regionu Azure pomocí nastavení volitelné azureRegion vlastnosti:
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2024-10-01-preview",
"name": "sustainable-backend",
"properties": {
"url": "https://mybackend.example.com",
"protocol": "http",
"azureRegion": "westeurope",
[...]
}
}
Pak použijte regionalizovaný backend v zatíženém fondu s vyvažováním zátěže a definujte mezní hodnotu emisí pomocí vlastnosti preferredCarbonEmission.
V tomto příkladu, pokud intenzita emisí uhlíku v westeurope oblasti překročí Medium, provoz na sustainable-backend je vyloučen ve srovnání s ostatními backendy v poolu.
{
[...]
"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
}
]
}
}
}
Tvarování provozu
Upravení provozu vám umožňuje upravit fungování API na základě relativních úrovní emisí uhlíku v oblasti (nebo oblastech) služby pro správu API. SLUŽBA API Management zveřejňuje context.Deployment.SustainabilityInfo.CurrentCarbonIntensitykontextovou proměnnou, která označuje aktuální kategorii intenzity emisí uhlíku pro vaši instanci služby API Management.
V nasazeních ve více oblastech poskytuje brána uhlíkovou intenzitu příslušné oblasti, v níž je spuštěna.
Pomocí této kontextové proměnné v zásadách můžete během období s nízkými emisemi uhlíku povolit zpracování provozu s větším nárokem nebo snížit zpracování při vysokých emisích uhlíku.
Příklad: Úprava chování v obdobích s vysokými emisemi uhlíku
V následujícím příkladu služba API Management rozšiřuje dobu trvání mezipaměti, implementuje přísnější omezování rychlosti a snižuje podrobnosti protokolování během období s vysokými emisemi uhlíku.
<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>
Příklad: Šíření informací o intenzitě emisí uhlíku do back-endu nebo v protokolech
Následující příklad ukazuje, jak získat přístup k aktuální intenzitě emisí uhlíku a rozšířit ji do back-endu nebo v protokolech.
<policies>
[...]
<outbound>
<base />
<set-header name="X-Sustainability-CarbonEmission" exists-action="override">
<value>@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity.ToString())</value>
</set-header>
</outbound>
[...]
</policies>
Příklad: Úprava podrobností trasování na základě intenzity emisí uhlíku
Následující příklad ukazuje, jak použít aktuální informace intenzity emisí uhlíku k úpravě množství informací šířených ve vlastním trasování.
<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>
Dostupnost v regionu
Následující tabulka uvádí:
- Oblasti, kde instance na úrovních API Management Classic (Developer, Basic, Standard, Premium) podporují funkce udržitelnosti (po registraci ve verzi Preview).
- Oblasti, kde jsou k dispozici informace o intenzitě emisí uhlíku, například pro vytváření regionalizovaných back-endů pro přesun provozu
| Región | Podpora služby API Management | Informace o intenzitě emisí uhlíku |
|---|---|---|
| Austrálie – střed | ✅ | |
| Austrálie – střed 2 | ✅ | |
| Austrálie – východ | ✅ | ✅ |
| Austrálie – jihovýchod | ✅ | ✅ |
| Brazílie – jih | ✅ | ✅ |
| Brazílie – jihovýchod | ✅ | |
| Kanada – střed | ✅ | |
| Kanada – východ | ✅ | ✅ |
| Indie – střed | ✅ | ✅ |
| Střed USA | ✅ | ✅ |
| Chile – střed | ✅ | |
| Východní Asie | ✅ | |
| USA – východ | ✅ | ✅ |
| USA – východ 2 | ✅ | ✅ |
| Francie – střed | ✅ | |
| Francie – jih | ✅ | ✅ |
| Německo – sever | ✅ | |
| Německo – středozápad | ✅ | ✅ |
| Indonésie – střed | ✅ | |
| Izrael – střed | ✅ | ✅ |
| Itálie – sever | ✅ | ✅ |
| Japonsko – východ | ✅ | ✅ |
| Japonsko – západ | ✅ | ✅ |
| Jio India – Centrum | ✅ | |
| Jio Indie – západ | ✅ | ✅ |
| Korea – střed | ✅ | |
| Korea – jih | ✅ | |
| Malajsie – jih | ✅ | |
| Mexiko – střed | ✅ | ✅ |
| Nový Zéland – sever | ✅ | ✅ |
| Střed USA – sever | ✅ | |
| Severní Evropa | ✅ | ✅ |
| Norsko – východ | ✅ | ✅ |
| Norsko – západ | ✅ | |
| Polsko – střed | ✅ | ✅ |
| Katar – střed | ✅ | ✅ |
| Jižní Afrika – sever | ✅ | ✅ |
| Jižní Afrika – západ | ✅ | |
| Střed USA – jih | ✅ | |
| Indie – jih | ✅ | ✅ |
| Jihovýchodní Asie | ✅ | |
| Španělsko – střed | ✅ | ✅ |
| Švédsko – střed | ✅ | ✅ |
| Švédsko – jih | ✅ | |
| Švýcarsko – sever | ✅ | ✅ |
| Švýcarsko – západ | ✅ | ✅ |
| Tchaj-wan – sever | ✅ | ✅ |
| Tchaj-wan – severozápad | ✅ | |
| Tchaj-wan – západ | ✅ | |
| Spojené arabské emiráty – střed | ✅ | |
| Spojené arabské emiráty – sever | ✅ | ✅ |
| Velká Británie – jih | ✅ | ✅ |
| Velká Británie – západ | ✅ | ✅ |
| Středozápadní USA | ✅ | ✅ |
| Západní Evropa | ✅ | ✅ |
| Indie – západ | ✅ | |
| USA – západ | ✅ | ✅ |
| USA – západ 2 | ✅ | ✅ |
| USA – západ 3 | ✅ | ✅ |
Kategorie intenzity emisí uhlíku
Následující tabulka vysvětluje kategorie intenzity emisí uhlíku používané při přesouvání provozu a tvarování provozu. Hodnoty jsou v gramech CO₂e na KWh pro emise z rozsahu 2.
| Kategorie | g CO₂e |
|---|---|
| Není k dispozici | N/A |
| Velmi nízko | ≤ 150 |
| Low | 151-300 |
| Středně | 301-500 |
| High | 501-700 |
| VelmiVysoká | > 700 |