Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
S’APPLIQUE À : Développeur | De base | Standard | Prime
Cet article présente les fonctionnalités de Gestion des API Azure qui vous aident à réduire l’empreinte carbone de votre trafic d’API. Utilisez les fonctionnalités pour ajuster le trafic d’API en fonction des émissions de carbone dans différentes régions Azure.
Note
- Les fonctionnalités de durabilité environnementale sont actuellement en préversion limitée. Pour vous inscrire, remplissez le formulaire.
- Ces fonctionnalités sont actuellement disponibles dans certaines régions dans les niveaux Classiques gestion des API Azure (Développeur, De base, Standard, Premium).
À propos des API durables
Les organisations se concentrent de plus en plus sur la réduction de leur impact environnemental par le biais de leur infrastructure numérique.
Gestion des API vous permet d’atteindre ces objectifs avec des fonctionnalités qui vous aident à :
- Déplacer et équilibrer la charge du trafic d'API vers les régions backend en fonction de leur intensité de carbone
- Mettre en forme le trafic d’API en fonction des émissions de carbone dans la région de votre service Gestion des API
En optimisant la façon dont vos API gèrent le trafic en fonction de facteurs environnementaux, vous pouvez :
- Réduire les émissions de carbone de votre trafic d’API
- Soutenir les initiatives de durabilité d’entreprise et les engagements environnementaux
- Démontrer la responsabilité environnementale aux parties prenantes
Déplacement du trafic
Le déplacement du trafic nécessite la configuration d’une ressource back-end dans une région Azure prise en charge qui fournit des informations sur l’intensité carbone. Ensuite, dans un pool principal à charge équilibrée, spécifiez le niveau maximal d’émission de carbone acceptable pour le back-end régionalisé, à l’aide de l’une des catégories d’intensité carbone.
Cette fonctionnalité, combinée à vos stratégies d’équilibrage de charge et de routage existantes, vous permet d’exclure le trafic vers des back-ends dans des régions avec des émissions de carbone relativement plus élevées.
Au moment de l’exécution :
- La gestion des API s'efforce d'acheminer le trafic vers les back-ends « verts » (dont les émissions sont inférieures à vos seuils spécifiés) et exclut les back-ends « sales » (dans les régions avec des émissions supérieures aux seuils spécifiés).
- Gestion des API achemine le trafic vers des back-ends « sales » dans certaines conditions pour garantir la continuité du service , par exemple, lorsque tous les back-ends régionalisés sont « sales » et que d’autres back-ends ne sont pas disponibles.
Exemple de configuration
Tout d’abord, configurez un back-end dans une région Azure prise en charge en définissant la propriété facultative azureRegion :
{
"type": "Microsoft.ApiManagement/service/backends",
"apiVersion": "2024-10-01-preview",
"name": "sustainable-backend",
"properties": {
"url": "https://mybackend.example.com",
"protocol": "http",
"azureRegion": "westeurope",
[...]
}
}
Ensuite, utilisez le back-end régionalisé dans un pool à charge équilibrée et définissez le seuil d’émission à l’aide d’une preferredCarbonEmission propriété.
Dans cet exemple, si l’intensité carbone de la westeurope région dépasse Medium, le trafic vers celui-ci sustainable-backend est exclu par rapport aux autres back-ends du 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
}
]
}
}
}
Mise en forme du trafic
La mise en forme du trafic vous permet d’ajuster le comportement de l’API en fonction des niveaux d’émission de carbone relatifs dans la région ou les régions de votre service Gestion des API. Gestion des API expose la context.Deployment.SustainabilityInfo.CurrentCarbonIntensityvariable de contexte, qui indique la catégorie d’intensité carbone actuelle pour votre instance Gestion des API.
Dans les déploiements multirégion, la passerelle fournit l’intensité carbone de la région dans laquelle elle s’exécute.
Utilisez cette variable de contexte dans vos stratégies pour permettre un traitement plus intensif du trafic pendant des périodes d’émissions de carbone faibles ou réduire le traitement pendant les émissions élevées de carbone.
Exemple : Ajuster le comportement dans les périodes d’émissions de carbone élevées
Dans l’exemple suivant, Gestion des API étend les durées de cache, implémente une limitation de débit plus stricte et réduit les détails de journalisation pendant les périodes d’émissions de carbone élevées.
<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>
Exemple : Propager des informations d’intensité de carbone vers le backend ou dans les logs système
L'exemple suivant montre comment accéder à l'intensité actuelle du carbone et la propager au backend ou dans les logs.
<policies>
[...]
<outbound>
<base />
<set-header name="X-Sustainability-CarbonEmission" exists-action="override">
<value>@(context.Deployment.SustainabilityInfo.CurrentCarbonIntensity.ToString())</value>
</set-header>
</outbound>
[...]
</policies>
Exemple : Ajuster le niveau de verbosité de la traçabilité en fonction de l’intensité carbone
L’exemple suivant montre comment utiliser les informations actuelles sur l’intensité carbone pour ajuster la quantité d’informations propagées dans une trace personnalisée.
<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>
Disponibilité de la région
Le tableau suivant indique :
- Régions où les instances des niveaux Classic de gestion des API (Développeur, De base, Standard, Premium) prennent en charge les fonctionnalités de durabilité (après inscription à la préversion)
- Régions où des informations sur l’intensité des émissions de carbone sont disponibles, par exemple, pour créer des back-ends régionalisés pour le déplacement du trafic
| Région | Prise en charge de gestion des API | Informations sur l’intensité carbone |
|---|---|---|
| Australie Centre | ✅ | |
| Australie Centre 2 | ✅ | |
| Australia East | ✅ | ✅ |
| Australia Southeast | ✅ | ✅ |
| Brazil South | ✅ | ✅ |
| Brésil Sud-Est | ✅ | |
| Canada Central | ✅ | |
| Canada Est | ✅ | ✅ |
| Inde centrale | ✅ | ✅ |
| Central US | ✅ | ✅ |
| Chili Central | ✅ | |
| Asie de l’Est | ✅ | |
| East US | ✅ | ✅ |
| Est des États-Unis 2 | ✅ | ✅ |
| France Centrale | ✅ | |
| France Sud | ✅ | ✅ |
| Allemagne Nord | ✅ | |
| Allemagne Centre-Ouest | ✅ | ✅ |
| Indonésie Centre | ✅ | |
| Israel Central | ✅ | ✅ |
| Italie Nord | ✅ | ✅ |
| Japon Est | ✅ | ✅ |
| Japon Ouest | ✅ | ✅ |
| Jio Inde Centre | ✅ | |
| Jio Inde Ouest | ✅ | ✅ |
| Korea Central | ✅ | |
| Sud de la Corée | ✅ | |
| Malaisie Sud | ✅ | |
| Mexique Centre | ✅ | ✅ |
| Nouvelle-Zélande Nord | ✅ | ✅ |
| Centre-Nord des États-Unis | ✅ | |
| Europe Nord | ✅ | ✅ |
| Norvège Est | ✅ | ✅ |
| Norvège Ouest | ✅ | |
| Pologne Centre | ✅ | ✅ |
| Qatar Central | ✅ | ✅ |
| Afrique du Sud Nord | ✅ | ✅ |
| Afrique du Sud Ouest | ✅ | |
| États-Unis - partie centrale méridionale | ✅ | |
| South India | ✅ | ✅ |
| Asie du Sud-Est | ✅ | |
| Espagne Centre | ✅ | ✅ |
| Suède Centre | ✅ | ✅ |
| Suède Sud | ✅ | |
| Suisse Nord | ✅ | ✅ |
| Suisse Ouest | ✅ | ✅ |
| Taïwan Nord | ✅ | ✅ |
| Taïwan Nord-Ouest | ✅ | |
| Taïwan Ouest | ✅ | |
| Émirats arabes unis Centre | ✅ | |
| Émirats arabes unis Nord | ✅ | ✅ |
| UK South | ✅ | ✅ |
| UK West | ✅ | ✅ |
| Ouest du centre des États-Unis | ✅ | ✅ |
| Europe Ouest | ✅ | ✅ |
| West India | ✅ | |
| West US | ✅ | ✅ |
| Ouest des États-Unis 2 | ✅ | ✅ |
| Ouest des États-Unis 3 | ✅ | ✅ |
Catégories d’intensité carbone
Le tableau suivant explique les catégories d’intensité carbone utilisées dans les caractéristiques de déplacement du trafic et de mise en forme du trafic. Les valeurs sont en grammes de CO₂e par kWh pour les émissions de portée 2.
| Catégorie | g CO²e |
|---|---|
| Non disponible | N/A |
| Très faible | ≤ 150 |
| Low | 151-300 |
| Moyen | 301-500 |
| High | 501-700 |
| Très élevé | > 700 |