Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: ontwikkelaar | Basic | Standard | Premium
In dit artikel worden functies in Azure API Management geïntroduceerd waarmee u de koolstofvoetafdruk van uw API-verkeer kunt verminderen. Gebruik de functies om API-verkeer aan te passen op basis van koolstofemissies in verschillende Azure-regio's.
Opmerking
- Milieuduurzaamheidsfuncties zijn momenteel in beperkte preview. Als u zich wilt registreren, vult u het formulier in.
- Deze functies zijn momenteel beschikbaar in bepaalde regio's in de klassieke Azure API Management-lagen (Developer, Basic, Standard, Premium).
Over duurzame API's
Organisaties richten zich steeds meer op het verminderen van hun impact op het milieu via hun digitale infrastructuur.
Met API Management kunt u deze doelen bereiken met functies die u helpen:
- API-verkeer verplaatsen en verdelen naar back-endregio's op basis van hun koolstofgehalte
- API-verkeer vormgeven op basis van koolstofemissies in de regio van uw API Management-service
Door te optimaliseren hoe uw API's verkeer verwerken op basis van omgevingsfactoren, kunt u het volgende doen:
- Koolstofuitstoot van uw API-verkeer verminderen
- Ondersteuning voor initiatieven voor bedrijfsduurzaamheid en milieuverplichtingen
- De verantwoordelijkheid voor het milieu demonstreren voor belanghebbenden
Verkeer omleiden
Voor verkeerverschuiving moet een back-endresource worden geconfigureerd in een ondersteunde Azure-regio die informatie over koolstofgehalte biedt. Geef vervolgens in een back-endpool met gelijke taakverdeling het maximaal acceptabele koolstofemissiesniveau voor de ge regionaliseerde back-end op met behulp van een van de categorieën koolstofgehalte.
Deze mogelijkheid, gecombineerd met uw bestaande strategieën voor taakverdeling en routering, helpt u bij het uitsluiten van verkeer naar back-ends in regio's met relatief hogere koolstofemissies.
Tijdens uitvoeringstijd:
- API Management doet er alles aan om verkeer te routeren naar 'groene' back-ends (in regio's met emissies onder de opgegeven drempelwaarden) en sluit 'vuile' back-ends uit (in regio's met emissies boven de opgegeven drempelwaarden).
- API Management routeert verkeer naar 'vuile' back-ends onder bepaalde voorwaarden om de continuïteit van de service te garanderen, bijvoorbeeld wanneer alle geregionaliseerde back-ends 'dirty' zijn en andere back-ends niet beschikbaar zijn.
Configuratievoorbeeld
Configureer eerst een back-end in een ondersteunde Azure-regio door de optionele azureRegion eigenschap in te stellen:
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2024-10-01-preview",
"name": "sustainable-backend",
"properties": {
"url": "https://mybackend.example.com",
"protocol": "http",
"azureRegion": "westeurope",
[...]
}
}
Gebruik vervolgens de geregionaliseerde back-end in een pool met gelijke taakverdeling en definieer de emissiedrempel met behulp van een preferredCarbonEmission eigenschap.
Als in dit voorbeeld de koolstofintensiteit in de westeurope regio Medium overschrijdt, wordt het verkeer naar de sustainable-backend uitgesloten in vergelijking met de andere backends in de pool.
{
[...]
"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
}
]
}
}
}
Verkeer vormgeven
Met het vormgeven van verkeer kunt u API-gedrag aanpassen op basis van relatieve koolstofuitgifteniveaus in de regio (of regio's) van uw API Management-service. API Management toont de context.Deployment.SustainabilityInfo.CurrentCarbonIntensitycontextvariabele, die de huidige koolstofgehaltecategorie voor uw API Management-exemplaar aangeeft.
Bij implementaties in meerdere regio's biedt de gateway het koolstofgehalte van de respectieve regio waarin deze wordt uitgevoerd.
Gebruik deze contextvariabele in uw beleid om meer intensieve verkeersverwerking mogelijk te maken tijdens perioden van lage koolstofemissies of om de verwerking tijdens een hoge koolstofuitstoot te verminderen.
Voorbeeld: Gedrag aanpassen in perioden met een hoge koolstofuitgifte
In het volgende voorbeeld verlengt API Management de cacheduur, implementeert strengere snelheidsbeperking en vermindert logboekregistratiedetails tijdens perioden met een hoge koolstofuitgifte.
<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>
Voorbeeld: Informatie over koolstofgehalte doorgeven aan back-end of in logboeken
In het volgende voorbeeld ziet u hoe u toegang krijgen tot het huidige koolstofgehalte en deze doorgeeft aan de back-end of in logboeken.
<policies>
[...]
<outbound>
<base />
<set-header name="X-Sustainability-CarbonEmission" exists-action="override">
<value>@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity.ToString())</value>
</set-header>
</outbound>
[...]
</policies>
Voorbeeld: Trace-verbositeit aanpassen op basis van koolstofintensiteit
In het volgende voorbeeld ziet u hoe u de huidige informatie over koolstofgehalte gebruikt om de hoeveelheid informatie die wordt doorgegeven in een aangepaste trace aan te passen.
<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>
Beschikbaarheid van de regio
De volgende tabel geeft aan:
- Regio's waar instanties in de klassieke API Management-lagen (Developer, Basic, Standard, Premium) duurzaamheidsfuncties ondersteunen (na aanmelding voor preview)
- Regio's waar informatie over het koolstofgehalte beschikbaar is, bijvoorbeeld voor het maken van ge regionaliseerde back-ends voor verkeersverschuiving
| Regio | API Management-ondersteuning | Informatie over koolstofintensiteit |
|---|---|---|
| Centraal Australië | ✅ | |
| Australia Central 2 | ✅ | |
| Australia East | ✅ | ✅ |
| Australia Southeast | ✅ | ✅ |
| Brazilië Zuid | ✅ | ✅ |
| Brazilië - zuidoost | ✅ | |
| Canada Central | ✅ | |
| Canada East | ✅ | ✅ |
| Centraal-India | ✅ | ✅ |
| Central US | ✅ | ✅ |
| Chili - centraal | ✅ | |
| Oost-Azië | ✅ | |
| East US | ✅ | ✅ |
| Oostelijke Verenigde Staten 2 | ✅ | ✅ |
| Centraal Frankrijk | ✅ | |
| Frankrijk - zuid | ✅ | ✅ |
| Duitsland - noord | ✅ | |
| West-Centraal Duitsland | ✅ | ✅ |
| Indonesië - centraal | ✅ | |
| Israël Centraal | ✅ | ✅ |
| Italy North | ✅ | ✅ |
| Oost-Japan | ✅ | ✅ |
| Japan Westelijk | ✅ | ✅ |
| Jio India Centraal | ✅ | |
| Jio India West | ✅ | ✅ |
| Korea Central | ✅ | |
| Zuid-Korea | ✅ | |
| Maleisië - zuid | ✅ | |
| Mexico Central | ✅ | ✅ |
| Nieuw-Zeeland - noord | ✅ | ✅ |
| Noord-Centraal VS | ✅ | |
| Europa - noord | ✅ | ✅ |
| Norway East | ✅ | ✅ |
| West-Noorwegen | ✅ | |
| Centraal Polen | ✅ | ✅ |
| Qatar Central | ✅ | ✅ |
| Zuid-Afrika - noord | ✅ | ✅ |
| Zuid-Afrika West | ✅ | |
| Zuid-Centraal Verenigde Staten | ✅ | |
| South India | ✅ | ✅ |
| Zuidoost-Azië | ✅ | |
| Spain Central | ✅ | ✅ |
| Zweden - centraal | ✅ | ✅ |
| Zuid-Zweden | ✅ | |
| Switzerland North | ✅ | ✅ |
| Switzerland West | ✅ | ✅ |
| Taiwan - Noord | ✅ | ✅ |
| Noordwesten van Taiwan | ✅ | |
| Taiwan West | ✅ | |
| UAE Central | ✅ | |
| VAE Noord | ✅ | ✅ |
| UK South | ✅ | ✅ |
| UK West | ✅ | ✅ |
| West-Centraal VS | ✅ | ✅ |
| West Europe | ✅ | ✅ |
| West India | ✅ | |
| West US | ✅ | ✅ |
| Westelijke Verenigde Staten 2 | ✅ | ✅ |
| Westelijke VS 3 | ✅ | ✅ |
Categorieën koolstofgehalte
In de volgende tabel worden de koolstofgehaltecategorieën beschreven die worden gebruikt in de functies voor verkeerverschuifing en het vormgeven van verkeer. De waarden zijn in gram CO₂e per KWh voor scope 2 emissies.
| Categorie | g CO²e |
|---|---|
| Niet beschikbaar | N/A |
| Zeer Laag | ≤ 150 |
| Low | 151-300 |
| Gemiddeld | 301-500 |
| High | 501-700 |
| ZeerHoog | > 700 |