Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Developer | Podstawowy | Standardowy | Premium
W tym artykule przedstawiono funkcje usługi Azure API Management, które pomagają zmniejszyć ślad węglowy ruchu interfejsu API. Użyj tych funkcji, aby dostosować ruch interfejsu API na podstawie emisji dwutlenku węgla w różnych regionach świadczenia usługi Azure.
Uwaga / Notatka
- Funkcje zrównoważonego rozwoju środowiska są obecnie dostępne w ograniczonej wersji zapoznawczej. Aby się zarejestrować, wypełnij formularz.
- Te funkcje są obecnie dostępne w wybranych regionach w warstwach klasycznych usługi Azure API Management (Developer, Basic, Standard, Premium).
Informacje o zrównoważonych interfejsach API
Organizacje coraz częściej koncentrują się na zmniejszeniu ich wpływu na środowisko poprzez infrastrukturę cyfrową.
Usługa API Management umożliwia osiągnięcie tych celów dzięki funkcjom, które pomagają:
- Przekierowanie i równoważenie obciążenia ruchu interfejsu API do regionów infrastruktury zaplecza na podstawie intensywności emisji dwutlenku węgla
- Kształtuj ruch API na podstawie emisji CO2 w regionie usługi API Management
Optymalizując sposób obsługi ruchu przez interfejsy API na podstawie czynników środowiskowych, można:
- Zmniejszenie emisji dwutlenku węgla ruchu interfejsu API
- Wspieranie inicjatyw związanych ze zrównoważonym rozwojem firmy i zobowiązań środowiskowych
- Demonstruj odpowiedzialność za środowisko dla uczestników projektu
Przesuwanie ruchu
Przesunięcie ruchu wymaga skonfigurowania zasobu zaplecza w obsługiwanym regionie świadczenia usługi Azure , który zapewnia informacje o intensywności emisji dwutlenku węgla. Następnie w puli zaplecza ze zrównoważonym obciążeniem określ maksymalny dopuszczalny poziom emisji dwutlenku węgla dla regionalnego zaplecza przy użyciu jednej z kategorii wskaźnika emisji dwutlenku węgla.
Ta funkcja, w połączeniu z istniejącymi strategiami równoważenia obciążenia i routingu, pomaga wykluczyć ruch do zapleczy w regionach ze stosunkowo wyższymi emisjami dwutlenku węgla.
W czasie wykonywania:
- Usługa API Management dokłada wszelkich starań, aby kierować ruch do "zielonych" zapleczy (w regionach z emisjami poniżej określonych progów) i wyklucza "brudne" zaplecza (w regionach z emisjami powyżej określonych progów).
- Usługa API Management kieruje ruch do "zanieczyszczonych" zapleczy w określonych warunkach, aby zapewnić ciągłość usług — na przykład gdy wszystkie regionalizowane zaplecza są "zanieczyszczone", a inne zaplecza są niedostępne.
Przykład konfiguracji
Najpierw skonfiguruj zaplecze w obsługiwanym regionie świadczenia usługi Azure , ustawiając właściwość opcjonalną azureRegion :
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2024-10-01-preview",
"name": "sustainable-backend",
"properties": {
"url": "https://mybackend.example.com",
"protocol": "http",
"azureRegion": "westeurope",
[...]
}
}
Następnie użyj regionalizowanego zaplecza w puli ze zrównoważonym obciążeniem i zdefiniuj próg emisji przy użyciu właściwości preferredCarbonEmission.
W tym przykładzie, jeśli intensywność emisji dwutlenku węgla w westeurope regionie przekroczy Medium, ruch do sustainable-backend jest wykluczony w porównaniu z innymi zapleczami serwerów w puli.
{
[...]
"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
}
]
}
}
}
Kształtowanie ruchu
Kształtowanie ruchu umożliwia dostosowanie zachowania interfejsu API na podstawie relatywnych poziomów emisji dwutlenku węgla w regionie usługi Zarządzania interfejsem API (lub regionach). Usługa API Management uwidacznia zmienną context.Deployment.SustainabilityInfo.CurrentCarbonIntensitykontekstową, która wskazuje bieżącą kategorię wskaźnika emisji dwutlenku węgla dla wystąpienia usługi API Management.
W przypadku wdrożeń obejmujących wiele regionów brama zapewnia wskaźnik emisji dwutlenku węgla w odpowiednim regionie, w którym działa.
Użyj tej zmiennej kontekstowej w zasadach, aby umożliwić bardziej intensywne przetwarzanie ruchu w okresach niskiej emisji dwutlenku węgla lub zmniejszyć przetwarzanie podczas wysokich emisji dwutlenku węgla.
Przykład: Dostosowywanie zachowania w okresach emisji dwutlenku węgla
W poniższym przykładzie usługa API Management wydłuża czas trwania pamięci podręcznej, implementuje bardziej rygorystyczne ograniczanie szybkości i zmniejsza szczegóły rejestrowania w okresach emisji dwutlenku węgla.
<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>
Przykład: przekazywanie informacji o wskaźniku emisji dwutlenku węgla do systemów backendowych lub w logach
W poniższym przykładzie pokazano, jak uzyskać dostęp do obecnej intensywności emisji dwutlenku węgla i przekazywać ją do zaplecza systemu lub do dzienników.
<policies>
[...]
<outbound>
<base />
<set-header name="X-Sustainability-CarbonEmission" exists-action="override">
<value>@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity.ToString())</value>
</set-header>
</outbound>
[...]
</policies>
Przykład: Dostosowywanie szczegółowości śledzenia na podstawie intensywności emisji dwutlenku węgla
W poniższym przykładzie pokazano, jak za pomocą bieżących informacji o intensywności emisji dwutlenku węgla dostosować ilość informacji propagowanych w śladzie niestandardowym.
<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>
Dostępność regionu
Poniższa tabela wskazuje:
- Regiony, w których instancje w klasycznych warstwach usługi API Management (Developer, Basic, Standard, Premium) wspierają funkcje związane ze zrównoważonym rozwojem (po zarejestrowaniu się w celu uzyskania wersji zapoznawczej)
- Regiony, w których są dostępne informacje o intensywności emisji dwutlenku węgla, na przykład w przypadku tworzenia regionalnych zapleczy na potrzeby przenoszenia ruchu
| Region | Obsługa usługi API Management | Informacje o wskaźniku emisji dwutlenku węgla |
|---|---|---|
| Australia Środkowa | ✅ | |
| Australia Środkowa 2 | ✅ | |
| Australia Wschodnia | ✅ | ✅ |
| Australia Południowo-Wschodnia | ✅ | ✅ |
| Brazylia Południowa | ✅ | ✅ |
| Brazylia Południowo-Wschodnia | ✅ | |
| Kanada Środkowa | ✅ | |
| Kanada Wschodnia | ✅ | ✅ |
| Indie Środkowe | ✅ | ✅ |
| Środkowe stany USA | ✅ | ✅ |
| Chile Środkowe | ✅ | |
| Azja Wschodnia | ✅ | |
| Wschodnie stany USA | ✅ | ✅ |
| Wschodnie stany USA 2 | ✅ | ✅ |
| Francja Środkowa | ✅ | |
| Francja Południowa | ✅ | ✅ |
| Niemcy Północne | ✅ | |
| Niemcy Środkowo-Zachodnie | ✅ | ✅ |
| Indonezja Środkowa | ✅ | |
| Izrael Środkowy | ✅ | ✅ |
| Włochy Północne | ✅ | ✅ |
| Japonia Wschodnia | ✅ | ✅ |
| Japonia Zachodnia | ✅ | ✅ |
| Jio Indie Środkowe | ✅ | |
| Jio India Zachodnia | ✅ | ✅ |
| Korea Środkowa | ✅ | |
| Korea Południowa | ✅ | |
| Malezja Południowa | ✅ | |
| Meksyk Środkowy | ✅ | ✅ |
| Nowa Zelandia Północna | ✅ | ✅ |
| Północno-środkowe stany USA | ✅ | |
| Europa Północna | ✅ | ✅ |
| Norwegia Wschodnia | ✅ | ✅ |
| Norwegia Zachodnia | ✅ | |
| Polska Środkowa | ✅ | ✅ |
| Katar Środkowy | ✅ | ✅ |
| Północna Republika Południowej Afryki | ✅ | ✅ |
| Zachodnia Republika Południowej Afryki | ✅ | |
| Południowo-środkowe stany USA | ✅ | |
| Indie Południowe | ✅ | ✅ |
| Azja Południowo-Wschodnia | ✅ | |
| Hiszpania Środkowa | ✅ | ✅ |
| Szwecja Środkowa | ✅ | ✅ |
| Szwecja Południowa | ✅ | |
| Szwajcaria Północna | ✅ | ✅ |
| Szwajcaria Zachodnia | ✅ | ✅ |
| Tajwan Północny | ✅ | ✅ |
| Tajwan Północno-zachodni | ✅ | |
| Tajwan Zachodni | ✅ | |
| Środkowe Zjednoczone Emiraty Arabskie | ✅ | |
| Północne Zjednoczone Emiraty Arabskie | ✅ | ✅ |
| Południowe Zjednoczone Królestwo | ✅ | ✅ |
| Zachodnie Zjednoczone Królestwo | ✅ | ✅ |
| Zachodnio-środkowe stany USA | ✅ | ✅ |
| Europa Zachodnia | ✅ | ✅ |
| Indie Zachodnie | ✅ | |
| Zachodnie stany USA | ✅ | ✅ |
| Zachodnie stany USA 2 | ✅ | ✅ |
| Zachodnie stany USA 3 | ✅ | ✅ |
Kategorie intensywności emisji dwutlenku węgla
W poniższej tabeli opisano kategorie wskaźnika emisji dwutlenku węgla używane w funkcjach zmiany ruchu i kształtowania ruchu. Wartości są w gramach CO₂e na KWh dla emisji zakresu 2.
| Kategoria | g CO₂e |
|---|---|
| Niedostępne | N/A |
| Bardzo niski | ≤ 150 |
| Low | 151-300 |
| Średni | 301-500 |
| High | 501-700 |
| BardzoWysoki | > 700 |