Habilitación de la replicación geográfica

En este artículo se describe la replicación de los almacenes de Azure App Configuration. Obtenga información sobre cómo crear, usar y eliminar una réplica en el almacén de configuración.

Para más información sobre el concepto de replicación geográfica, vea Replicación geográfica en Azure App Configuration.

Prerrequisitos

Creación y enumeración de una réplica

Para crear una réplica del almacén de configuración en el portal, siga estos pasos.

Nota

No se admite la creación de una réplica para un almacén de App Configuration con puntos de conexión privados configurados con IP estática. Si prefiere un punto de conexión privado con configuración de IP estática, las réplicas deben crearse antes de que se agregue cualquier punto de conexión privado a un almacén.

  1. En el almacén de App Configuration, en Configuración, seleccione Replicación geográfica.

  2. En Réplicas, seleccione Crear. Elija la ubicación de la nueva réplica en la lista desplegable y, después, asigne un nombre a la réplica. Este nombre de réplica debe ser único.

    Captura de pantalla del botón Replicación geográfica resaltado y el botón Crear para una réplica.

  3. Seleccione Crear.

  4. Ahora debería ver la nueva réplica enumerada en Réplicas. Compruebe que el estado de la réplica es "Correcto", lo que indica que se ha creado correctamente.

    Captura de pantalla de la lista de réplicas que se ha creado para el almacén de configuración.

Eliminación de una réplica

Para eliminar una réplica en el portal, siga estos pasos.

  1. En el almacén de App Configuration, en Configuración, seleccione Replicación geográfica.

  2. En Réplicas, seleccione ... a la derecha de la réplica que quiera eliminar. Seleccione Eliminar en el menú desplegable.

     Captura de pantalla en la que se muestran los tres puntos a la derecha de la réplica seleccionada y la opción Eliminar.

  3. Compruebe el nombre de la réplica que se va a eliminar y seleccione Aceptar para confirmar.

  4. Una vez que se complete el proceso, compruebe en la lista de réplicas que se ha eliminado la réplica correcta.

Detección automática de réplicas

Los proveedores de App Configuration pueden detectar de manera automática las réplicas de un punto de conexión de App Configuration determinado e intentar conectarse a ellas. Esta característica le permite beneficiarse de la replicación geográfica sin tener que cambiar el código ni volver a implementar la aplicación. Esto significa que puede habilitar la replicación geográfica o agregar réplicas adicionales incluso después de implementar la aplicación.

La detección automática de réplicas está habilitada de forma predeterminada, pero puede hacer referencia al siguiente código de ejemplo para deshabilitarlo (no recomendado).

Edite la llamada al método AddAzureAppConfiguration, que a menudo se encuentra en el archivo program.cs de la aplicación.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Disable automatic replica discovery
    options.ReplicaDiscoveryEnabled = false;

    // Other changes to options
});

Nota:

La compatibilidad con la detección automática de réplicas está disponible si usa la versión 7.1.0 o posterior de cualquiera de los siguientes paquetes.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Escalado y conmutación por error con réplicas

Cada réplica que cree tiene su punto de conexión dedicado. Si la aplicación reside en varias geolocalizaciones, puede actualizar cada implementación de la aplicación en una ubicación para conectarse a la réplica más cercana a esa ubicación, lo que ayuda a minimizar la latencia de red entre la aplicación y App Configuration. Dado que cada réplica tiene su cuota de solicitudes independiente, esta configuración también ayuda a la escalabilidad de la aplicación mientras crece para convertirse en un servicio distribuido de varias regiones.

Cuando la replicación geográfica está habilitada y una réplica no es accesible, puede permitir que la aplicación conmute por error a otra réplica para mejorar la resistencia. Los proveedores de App Configuration tienen compatibilidad integrada con la conmutación por error a través de réplicas proporcionadas por el usuario o réplicas detectadas adicionales de manera automática. Puede proporcionar una lista de los puntos de conexión de réplica de mayor a menor preferencia. Cuando el punto de conexión actual no sea accesible, el proveedor conmutará por error a un punto de conexión con menos preferencia, pero, de vez en cuando, intenta conectarse a los puntos de conexión con más preferencia. Si no se puede acceder a todas las réplicas proporcionadas por el usuario, las réplicas detectadas de manera automática se seleccionarán y usarán aleatoriamente. Cuando un punto de conexión con más preferencia esté disponible, el proveedor cambiará a él para futuras solicitudes.

Suponiendo que tiene una aplicación que usa Azure App Configuration, puede actualizarla como en el código de ejemplo siguiente para aprovechar la característica de conmutación por error. Puede proporcionar una lista de puntos de conexión para la autenticación de Microsoft Entra o una lista de cadenas de conexión para la autenticación basada en claves de acceso.

Edite la llamada al método AddAzureAppConfiguration, que a menudo se encuentra en el archivo program.cs de la aplicación.

Conexión con 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
});

Conexión con una cadena de conexión

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
});

Nota

La compatibilidad con la conmutación por error está disponible si usa la versión 6.0.0 o posterior de cualquiera de los siguientes paquetes.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

La conmutación por error puede producirse si el proveedor de App Configuration cumple las condiciones siguientes.

  • Recibe respuestas con estado de servicio no disponible (código de estado HTTP 500 o superior).
  • Experiencias con problemas de conectividad de red.
  • Las solicitudes se limitan (código de estado HTTP 429).

La conmutación por error no se producirá en caso de errores del cliente, como los errores de autenticación.

Equilibrio de carga con réplicas

De forma predeterminada, la aplicación siempre envía solicitudes al punto de conexión más preferido que proporcione, excepto en caso de conmutación por error. Sin embargo, además de la conmutación por error, también se pueden usar réplicas para equilibrar la carga de solicitudes. Al distribuir de forma proactiva las solicitudes en todas las réplicas disponibles a lo largo del tiempo, puede evitar agotar la cuota de solicitudes de una sola réplica y mejorar la escalabilidad general de la aplicación.

Los proveedores de App Configuration ofrecen compatibilidad integrada para el equilibrio de carga entre réplicas, tanto si se proporcionan en el código como si se detectan de manera automática. Puede usar los ejemplos de código siguientes para habilitar esta característica en la aplicación (recomendado).

Edite la llamada al método AddAzureAppConfiguration, que a menudo se encuentra en el archivo program.cs de la aplicación.

configurationBuilder.AddAzureAppConfiguration(options =>
{
    // Enable load balancing
    options.LoadBalancingEnabled = true;

    // Other changes to options
});

Nota:

La compatibilidad con el equilibrio de carga está disponible si usa la versión 8.0.0-preview.3 o posterior de cualquiera de los siguientes paquetes.

  • Microsoft.Extensions.Configuration.AzureAppConfiguration
  • Microsoft.Azure.AppConfiguration.AspNetCore
  • Microsoft.Azure.AppConfiguration.Functions.Worker

Pasos siguientes