Condividi tramite


Abilitare la replica geografica

Questo articolo illustra la replica degli archivi di Configurazione app di Azure. Informazioni su come creare, usare ed eliminare una replica nell'archivio di configurazione.

Per altre informazioni sul concetto di replica geografica, vedere Replica geografica in Configurazione app di Azure.

Prerequisiti

Creare ed elencare una replica

Per creare una replica dell'archivio di configurazione nel portale, seguire questa procedura.

Nota

La creazione di una replica per un archivio di Configurazione app con endpoint privati configurati con IP statico non è supportata. Se si preferisce un endpoint privato con configurazione IP statica, è necessario creare repliche prima dell'aggiunta di qualsiasi endpoint privato a un archivio.

  1. Nell'archivio di Configurazione app, in Impostazioni selezionare Replica geografica.

  2. In Repliche selezionare Crea. Scegliere il percorso della nuova replica nell'elenco a discesa, quindi assegnare alla replica un nome. Questo nome di replica deve essere univoco.

    Screenshot del pulsante Replica geografica evidenziato, nonché del pulsante Crea per una replica.

  3. Seleziona Crea.

  4. Verrà ora visualizzata la nuova replica elencata in Repliche. Verificare che lo stato della replica sia "Succeeded", che indica che è stata creata correttamente.

    Screenshot dell'elenco di repliche create per l'archivio di configurazione.

Eliminare una replica

Per eliminare una replica nel portale, seguire questa procedura.

  1. Nell'archivio di Configurazione app, in Impostazioni selezionare Replica geografica.

  2. In Repliche selezionare ... a destra della replica da eliminare. Selezionare Elimina dall'elenco a discesa.

     Screenshot che mostra i tre puntini a destra della replica selezionata, che mostra l'opzione di eliminazione.

  3. Verificare il nome della replica da eliminare e selezionare OK per confermare.

  4. Al termine del processo, controllare l'elenco delle repliche eliminate dalla replica corretta.

Individuazione automatica delle repliche

I provider di Configurazione app possono individuare automaticamente tutte le repliche da un determinato endpoint di Configurazione app e tentare di connettersi a tali repliche. Questa funzionalità consente di trarre vantaggio dalla replica geografica senza dover modificare il codice o ridistribuire l'applicazione. Ciò significa che è possibile abilitare la replica geografica o aggiungere repliche aggiuntive anche dopo la distribuzione dell'applicazione.

L'individuazione automatica delle repliche è abilitata per impostazione predefinita, ma è possibile fare riferimento al codice di esempio seguente per disabilitarlo (non consigliato).

Modificare la chiamata al metodo AddAzureAppConfiguration, spesso presente nel file program.cs dell'applicazione.

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

    // Other changes to options
});

Nota

Il supporto per l'individuazione automatica delle repliche è disponibile se si usa la versione 7.1.0 o versioni successive di uno dei pacchetti seguenti.

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

Ridimensionare ed eseguire il failover con repliche

Ogni replica creata ha il relativo endpoint dedicato. Se l'applicazione si trova in più posizioni geografiche, è possibile aggiornare ogni distribuzione dell'applicazione in una posizione per connettersi alla replica più vicina a tale posizione, riducendo al minimo la latenza di rete tra l'applicazione e Configurazione app. Poiché ogni replica ha una quota di richiesta separata, questa configurazione consente anche la scalabilità dell'applicazione mentre aumenta fino a un servizio distribuito in più aree.

Quando la replica geografica è abilitata e se una replica non è accessibile, è possibile consentire il failover dell'applicazione a un'altra replica per migliorare la resilienza. I provider di Configurazione app supportano il failover predefinito tramite repliche fornite dall'utente e/o repliche individuate automaticamente aggiuntive. È possibile fornire un elenco degli endpoint di replica nell'ordine preferito all'endpoint meno preferito. Quando l'endpoint corrente non è accessibile, il provider eseguirà il failover a un endpoint meno preferito, ma tenta di connettersi agli endpoint preferiti di volta in volta. Se tutte le repliche fornite dall'utente non sono accessibili, le repliche individuate automaticamente verranno selezionate e usate in modo casuale. Quando diventa disponibile un endpoint più preferito, il provider passerà a esso per le richieste future.

Supponendo di avere un'applicazione con Configurazione app di Azure, è possibile aggiornarla come codice di esempio seguente per sfruttare la funzionalità di failover. È possibile fornire un elenco di endpoint per l'autenticazione di Microsoft Entra o un elenco di stringhe di connessione per l'autenticazione basata su chiave di accesso.

Modificare la chiamata al metodo AddAzureAppConfiguration, spesso presente nel file program.cs dell'applicazione.

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

Connettersi con Stringa di connessione

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

Il supporto per il failover è disponibile se si usa la versione 6.0.0 o successiva di uno dei pacchetti seguenti.

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

Il failover può verificarsi se il provider di Configurazione app osserva le condizioni seguenti.

  • Riceve risposte con stato del servizio non disponibile (codice di stato HTTP 500 o versione successiva).
  • Esperienze con i problemi di connettività di rete.
  • Le richieste vengono limitate (codice di stato HTTP 429).

Il failover non si verificherà per errori del client, ad esempio errori di autenticazione.

Bilanciamento del carico con repliche

Per impostazione predefinita, l'applicazione invia sempre richieste all'endpoint più preferito fornito, tranne in caso di failover. Tuttavia, oltre al failover, è anche possibile usare le repliche per bilanciare il carico delle richieste. Distribuendo in modo proattivo le richieste tra le repliche disponibili nel tempo, è possibile evitare di esaurire la quota di richiesta di una singola replica e migliorare la scalabilità complessiva dell'applicazione.

I provider di Configurazione app offrono il supporto predefinito per il bilanciamento del carico tra le repliche, indipendentemente dal fatto che venga fornito nel codice o individuato automaticamente. È possibile usare gli esempi di codice seguenti per abilitare questa funzionalità nell'applicazione (scelta consigliata).

Modificare la chiamata al metodo AddAzureAppConfiguration, spesso presente nel file program.cs dell'applicazione.

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

    // Other changes to options
});

Nota

Il supporto del bilanciamento del carico è disponibile se si usa la versione 8.0.0-preview.3 o versioni successive di uno dei pacchetti seguenti.

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

Passaggi successivi