Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
GILT FÜR: Entwickler | Basis | Standard | Premium
In diesem Artikel werden Features in Azure API Management vorgestellt, mit denen Sie den Co2-Fußabdruck Ihres API-Datenverkehrs reduzieren können. Nutzen Sie Funktionen, um den API-Datenverkehr basierend auf CO2-Emissionen in verschiedenen Azure-Regionen anzupassen.
Hinweis
- Merkmale für nachhaltige Entwicklung befinden sich derzeit in einer limitierten Vorschau. Um sich anzumelden, füllen Sie das Formular aus.
- Diese Features sind derzeit in ausgewählten Regionen in den klassischen Azure-API-Verwaltungsebenen (Entwickler, Basic, Standard, Premium) verfügbar.
Informationen zu nachhaltigen APIs
Organisationen konzentrieren sich zunehmend darauf, ihre Auswirkungen auf die Umwelt durch ihre digitale Infrastruktur zu reduzieren.
Mit der API-Verwaltung können Sie diese Ziele mit Features erreichen, die Ihnen helfen:
- API-Datenverkehr basierend auf der CO2-Intensität auf Back-End-Regionen verlagern und ausgleichen
- API-Datenverkehr steuern basierend auf Kohlendioxidemissionen in der Region Ihres API-Managementdienstes
Indem Sie optimieren, wie Ihre APIs Datenverkehr basierend auf Umgebungsfaktoren verarbeiten, können Sie:
- Reduzieren der Co2-Emissionen Ihres API-Datenverkehrs
- Unterstützung von Initiativen zur Nachhaltigkeit von Unternehmen und Umweltverpflichtungen
- Veranschaulichen der Umweltverantwortung für die Beteiligten
Verkehrsumleitung
Die Datenverkehrsverschiebung erfordert das Konfigurieren einer Back-End-Ressource in einer unterstützten Azure-Region, die Informationen zur Kohlenstoffintensität bereitstellt. Geben Sie dann in einem Lastenausgleichs-Back-End-Pool den maximal zulässigen Co2-Emissionswert für das regionalisierte Back-End unter Verwendung einer der Co2-Intensitätskategorien an.
Diese Funktion, kombiniert mit Ihren vorhandenen Lastenausgleichs- und Routingstrategien, hilft Ihnen, den Datenverkehr von Backend-Systemen in Regionen mit relativ höheren CO₂-Emissionen zu umgehen.
Zur Laufzeit:
- Die API-Verwaltung bemüht sich am besten, Datenverkehr an "grüne" Back-Ends (in Regionen mit Emissionen unter den angegebenen Schwellenwerten) weiterzuleiten und "schmutzige" Back-Ends (in Regionen mit Emissionen über den angegebenen Schwellenwerten) auszuschließen.
- Die API-Verwaltung leitet Datenverkehr unter bestimmten Bedingungen an "dirty"-Back-Ends weiter, um die Dienstkontinuität sicherzustellen – beispielsweise, wenn alle regionalisierten Back-Ends "dirty" sind und andere Back-Ends nicht verfügbar sind.
Konfigurationsbeispiel
Konfigurieren Sie zunächst ein Back-End in einer unterstützten Azure-Region , indem Sie die optionale azureRegion Eigenschaft festlegen:
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2024-10-01-preview",
"name": "sustainable-backend",
"properties": {
"url": "https://mybackend.example.com",
"protocol": "http",
"azureRegion": "westeurope",
[...]
}
}
Verwenden Sie dann das regionalisierte Back-End in einem Lastenausgleichspool, und definieren Sie den Emissionsschwellenwert mithilfe einer preferredCarbonEmission Eigenschaft.
In diesem Beispiel wird der Datenverkehr zu westeurope ausgeschlossen, wenn die CO2-Intensität in der Region Mediumsustainable-backend überschreitet, im Vergleich zu den anderen Back-Ends im 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
}
]
}
}
}
Verkehrsgestaltung
Mit der Traffic-Steuerung können Sie das Verhalten Ihrer APIs basierend auf den relativen CO₂-Emissionswerten in der (den) Region(en) Ihres API-Verwaltungsdienstes anpassen. Die API-Verwaltung macht die context.Deployment.SustainabilityInfo.CurrentCarbonIntensityKontextvariable verfügbar, die die aktuelle Co2-Intensitätskategorie für Ihre API-Verwaltungsinstanz angibt.
Bei Bereitstellungen mit mehreren Regionen stellt das Gateway die Co2-Intensität der jeweiligen Region bereit, in der es ausgeführt wird.
Verwenden Sie diese Kontextvariable in Ihren Richtlinien, um eine intensivere Datenverkehrsverarbeitung in Zeiträumen mit geringen Co2-Emissionen zu ermöglichen oder die Verarbeitung bei hohen Co2-Emissionen zu reduzieren.
Beispiel: Anpassen des Verhaltens bei hohen Co2-Emissionsperioden
Im folgenden Beispiel erweitert API-Verwaltung Cachedauern, implementiert eine strengere Begrenzung der Rate und reduziert die Protokollierungsdetails während hoher Co2-Emissionsperioden.
<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>
Beispiel: Weiterleiten von Informationen zur CO2-Intensität an das Backend oder in Protokollen
Das folgende Beispiel zeigt, wie Sie auf die aktuelle Co2-Intensität zugreifen und sie in das Back-End oder in Protokollen weitergeben.
<policies>
[...]
<outbound>
<base />
<set-header name="X-Sustainability-CarbonEmission" exists-action="override">
<value>@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity.ToString())</value>
</set-header>
</outbound>
[...]
</policies>
Beispiel: Anpassung der Ausführlichkeit der Nachverfolgung basierend auf der CO2-Intensität
Das folgende Beispiel zeigt, wie Sie die aktuellen Informationen zur CO2-Intensität verwenden, um die Menge der Informationen anzupassen, die in einer benutzerdefinierten Ablaufverfolgung weitergegeben werden.
<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>
Regionale Verfügbarkeit
Die folgende Tabelle gibt folgendes an:
- Regionen, in denen Instanzen der klassischen API-Verwaltungsebenen (Developer, Basic, Standard, Premium) Nachhaltigkeitsfeatures unterstützen (nach der Registrierung für die Vorschau)
- Regionen, in denen Informationen zur Intensität der Co2-Emissionen verfügbar sind, z. B. zum Erstellen regionalisierter Back-Ends für die Verkehrsverschiebung
| Region | API-Verwaltungsunterstützung | Informationen zur Kohlenstoffintensität |
|---|---|---|
| Australia Central | ✅ | |
| Australien Central 2 | ✅ | |
| Australia East | ✅ | ✅ |
| Australia Southeast | ✅ | ✅ |
| Brasilien Süd | ✅ | ✅ |
| Brasilien, Südosten | ✅ | |
| Canada Central | ✅ | |
| Canada East | ✅ | ✅ |
| Zentralindien | ✅ | ✅ |
| Central US | ✅ | ✅ |
| Chile Zentral | ✅ | |
| Ostasien | ✅ | |
| East US | ✅ | ✅ |
| Ost-USA 2 | ✅ | ✅ |
| Frankreich, Mitte | ✅ | |
| France South | ✅ | ✅ |
| Germany North | ✅ | |
| Deutschland West Central | ✅ | ✅ |
| Indonesien Zentral | ✅ | |
| Israel Central | ✅ | ✅ |
| Italy North | ✅ | ✅ |
| Japan, Osten | ✅ | ✅ |
| Japan West | ✅ | ✅ |
| Jio Indien Mitte | ✅ | |
| Jio India West | ✅ | ✅ |
| Korea Central | ✅ | |
| Korea South | ✅ | |
| Malaysia Süd | ✅ | |
| Mexiko Zentral | ✅ | ✅ |
| Neuseeland, Norden | ✅ | ✅ |
| Nord-Mittel-USA | ✅ | |
| Nordeuropa | ✅ | ✅ |
| Norway East | ✅ | ✅ |
| Westnorwegen | ✅ | |
| Poland Central | ✅ | ✅ |
| Qatar Central | ✅ | ✅ |
| Südafrika Nord | ✅ | ✅ |
| Südafrika, Westen | ✅ | |
| Süd-Mittel-USA | ✅ | |
| South India | ✅ | ✅ |
| Südostasien | ✅ | |
| Spain Central | ✅ | ✅ |
| Schweden, Mitte | ✅ | ✅ |
| Schweden Süd | ✅ | |
| Switzerland North | ✅ | ✅ |
| Switzerland West | ✅ | ✅ |
| Taiwan North | ✅ | ✅ |
| Taiwan Nordwest | ✅ | |
| Taiwan, Westen | ✅ | |
| UAE Central | ✅ | |
| Vereinigte Arabische Emirate, Norden | ✅ | ✅ |
| UK South | ✅ | ✅ |
| UK West | ✅ | ✅ |
| Zentraler Westen der USA | ✅ | ✅ |
| West Europe | ✅ | ✅ |
| West India | ✅ | |
| West US | ✅ | ✅ |
| Westliches USA 2 | ✅ | ✅ |
| Westliches USA 3 | ✅ | ✅ |
Co2-Intensitätskategorien
In der folgenden Tabelle werden die Co2-Intensitätskategorien erläutert, die in den Merkmalen der Verkehrsverlagerung und der Verkehrsgestaltung verwendet werden. Die Werte liegen in Gramm CO² pro KWh für die Bereichsemissionen 2.
| Kategorie | g CO²e |
|---|---|
| Nicht verfügbar. | N/A |
| SehrNiedrig | ≤ 150 |
| Low | 151-300 |
| Mittelstufe | 301-500 |
| High | 501-700 |
| Sehr hoch | > 700 |