Activer la géoréplication
Cet article traite de la réplication des magasins Azure App Configuration. Vous découvrirez comment créer, utiliser et supprimer un réplica dans votre magasin de configuration.
Pour en savoir plus sur le concept de géoréplication, consultez Géoréplication dans Azure App Configuration.
Prérequis
- Un abonnement Azure : créez-en un gratuitement
- Nous partons du principe que vous disposez déjà d’un magasin App Configuration. Si vous souhaitez en créer un, consultez Créer un magasin App Configuration.
Créer et répertorier un réplica
Pour créer un réplica de votre magasin de configuration dans le portail, suivez les étapes ci-dessous.
Notes
La création d’un réplica pour un magasin App Configuration, dont les points de terminaison privés sont configurés avec une adresse IP statique, n’est pas prise en charge. Si vous préférez un point de terminaison privé avec une configuration IP statique, des réplicas doivent être créés avant l’ajout d’un point de terminaison privé à un magasin.
Dans votre magasin App Configuration, sous Paramètres, sélectionnez Géoréplication.
Sous Réplicas, sélectionnez Créer. Choisissez l’emplacement de votre nouveau réplica dans la liste déroulante, puis affectez le nom du réplica. Ce nom doit être unique.
Sélectionnez Create (Créer).
Vous devez maintenant voir votre nouveau réplica répertorié sous Réplicas. Vérifiez que l’état du réplica est « Réussi », ce qui indique qu’il a été créé avec succès.
Supprimer un réplica
Pour supprimer un réplica dans le portail, suivez les étapes ci-dessous.
Dans votre magasin App Configuration, sous Paramètres, sélectionnez Géoréplication.
Sous Réplicas, sélectionnez le ... à droite du réplica que vous souhaitez supprimer. Sélectionnez Supprimer dans le menu déroulant.
Vérifiez le nom du réplica à supprimer et sélectionnez OK pour confirmer.
Une fois le processus terminé, vérifiez la liste des réplicas que le réplica correct a été supprimé.
Détection automatique de réplicas
Les fournisseurs App Configuration peuvent détecter automatiquement tous les réplicas à partir d’un point de terminaison App Configuration donné et tenter de s’y connecter. Cette fonctionnalité vous permet de bénéficier de la géoréplication sans modifier votre code ou redéployer votre application. Cela signifie que vous pouvez activer la géoréplication ou ajouter des réplicas supplémentaires même après le déploiement de votre application.
La découverte automatique de réplicas est activée par défaut, mais vous pouvez vous reporter à l’exemple de code suivant pour le désactiver (non recommandé).
Modifiez l’appel à la méthode AddAzureAppConfiguration
, qui se trouve souvent dans le fichier program.cs
de votre application.
configurationBuilder.AddAzureAppConfiguration(options =>
{
// Disable automatic replica discovery
options.ReplicaDiscoveryEnabled = false;
// Other changes to options
});
Remarque
La prise en charge de la découverte automatique de réplicas est disponible si vous utilisez la version 7.1.0 ou ultérieure d’un des packages suivants.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Microsoft.Azure.AppConfiguration.AspNetCore
Microsoft.Azure.AppConfiguration.Functions.Worker
Mettre à l’échelle et effectuer un basculement avec des réplicas
Chaque réplica que vous créez a son point de terminaison dédié. Si votre application réside dans plusieurs emplacements géographiques, vous pouvez mettre à jour chaque déploiement de votre application dans un emplacement pour vous connecter au réplica le plus proche de cet emplacement, ce qui permet de réduire la latence réseau entre votre application et App Configuration. Étant donné que chaque réplica dispose de son quota de requêtes distinct, cette configuration favorise également la scalabilité de votre application pendant qu’elle s’étend à un service distribué multirégion.
Lorsque la géoréplication est activée, et si un réplica n’est pas accessible, vous pouvez laisser votre application basculer vers un autre réplica pour améliorer la résilience. Les fournisseurs App Configuration offrent une prise en charge intégrée du basculement via les réplicas fournis par l’utilisateur et/ou d’autres réplicas détectés automatiquement. Vous pouvez fournir une liste de vos points de terminaison de réplica, classés par ordre de préférence. Lorsque le point de terminaison actuel n’est pas accessible, le fournisseur bascule vers un point de terminaison moins privilégié, mais il tente de temps en temps de se connecter aux points de terminaison les plus privilégiés. Si aucun réplica fourni par l’utilisateur n’est accessible, les réplicas détectés automatiquement sont sélectionnés aléatoirement et utilisés. Lorsqu’un point de terminaison de plus haute préférence devient disponible, le fournisseur basculera vers celui-ci pour les requêtes ultérieures.
En supposant que vous disposez d’une application qui utilise Azure App Configuration, vous pouvez la mettre à jour en tant qu’exemple de code suivant pour tirer parti de la fonctionnalité de basculement. Vous pouvez fournir une liste de points de terminaison pour l’authentification Microsoft Entra ou une liste de chaînes de connexion pour une authentification basée sur une clé d’accès.
Modifiez l’appel à la méthode AddAzureAppConfiguration
, qui se trouve souvent dans le fichier program.cs
de votre application.
Se connecter avec Microsoft Entra ID
configurationBuilder.AddAzureAppConfiguration(options =>
{
// Provide an ordered list of replica endpoints
var endpoints = new Uri[] {
new Uri("<first-replica-endpoint>"),
new Uri("<second-replica-endpoint>") };
// Connect to replica endpoints using Microsoft Entra authentication
options.Connect(endpoints, new DefaultAzureCredential());
// Other changes to options
});
Se connecter avec une chaîne de connexion
configurationBuilder.AddAzureAppConfiguration(options =>
{
// Provide an ordered list of replica connection strings
var connectionStrings = new string[] {
Environment.GetEnvironmentVariable("FIRST_REPLICA_CONNECTION_STRING"),
Environment.GetEnvironmentVariable("SECOND_REPLICA_CONNECTION_STRING") };
// Connect to replica endpoints using connection strings
options.Connect(connectionStrings);
// Other changes to options
});
Notes
La prise en charge du basculement est disponible si vous utilisez la version 6.0.0 ou ultérieure de l’un des packages suivants.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Microsoft.Azure.AppConfiguration.AspNetCore
Microsoft.Azure.AppConfiguration.Functions.Worker
Le basculement peut se produire si le fournisseur App Configuration respecte les conditions suivantes.
- Réception de réponses avec l’état Service non disponible (code d’état HTTP 500 ou plus)
- Problèmes de connectivité réseau
- Les requêtes sont limitées (code d’état HTTP 429)
Le basculement ne se produit pas pour les erreurs du client telles que les échecs d’authentification.
Équilibre de charge avec des réplicas
Par défaut, votre application envoie toujours des requêtes au point de terminaison fourni ayant la plus haute préférence, sauf en cas de basculement. Toutefois, en plus du basculement, les réplicas peuvent également être utilisés pour équilibrer la charge des requêtes. En répartissant de manière proactive les requêtes sur tous les réplicas disponibles au fil du temps, vous pouvez éviter d’épuiser le quota de demandes d’un seul réplica et améliorer la scalabilité globale de votre application.
Les fournisseurs App Configuration offrent une prise en charge intégrée de l’équilibrage de charge entre les réplicas, qu’ils soient fournis dans le code ou détectés automatiquement. Vous pouvez utiliser les exemples de code suivants pour activer cette fonctionnalité dans votre application (recommandé).
Modifiez l’appel à la méthode AddAzureAppConfiguration
, qui se trouve souvent dans le fichier program.cs
de votre application.
configurationBuilder.AddAzureAppConfiguration(options =>
{
// Enable load balancing
options.LoadBalancingEnabled = true;
// Other changes to options
});
Remarque
La prise en charge de l’équilibrage de charge est disponible si vous utilisez la version 8.0.0-preview.3 ou une version ultérieure de l’un des packages suivants.
Microsoft.Extensions.Configuration.AzureAppConfiguration
Microsoft.Azure.AppConfiguration.AspNetCore
Microsoft.Azure.AppConfiguration.Functions.Worker