Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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 |