Partilhar via


Habilite a replicação geográfica

Este artigo aborda a replicação de repositórios de Configuração de Aplicativos do Azure. Você aprenderá sobre como criar, usar e excluir uma réplica em seu repositório de configuração.

Para saber mais sobre o conceito de replicação geográfica, consulte Replicação geográfica na Configuração de Aplicativo do Azure.

Pré-requisitos

  • Uma subscrição do Azure - crie uma gratuitamente
  • Assumimos que já tem uma loja de Configuração de Aplicações. Se você quiser criar um, crie uma loja de configuração de aplicativo.

Criar e listar uma réplica

Para criar uma réplica do seu repositório de configuração no portal, siga as etapas abaixo.

Nota

Não há suporte para a criação de uma réplica para uma loja de Configuração de Aplicativo com pontos de extremidade privados configurados com IP estático. Se você preferir um ponto de extremidade privado com configuração de IP estático, as réplicas devem ser criadas antes que qualquer ponto de extremidade privado seja adicionado a um armazenamento.

  1. Na sua loja de Configuração de Aplicações, em Definições, selecione Replicação geográfica.

  2. Em Réplica(s), selecione Criar. Escolha o local da nova réplica na lista suspensa e atribua um nome à réplica. Esse nome de réplica deve ser exclusivo.

    Captura de tela do botão Replicação geográfica sendo realçado, bem como o botão de criação de uma réplica.

  3. Selecione Criar.

  4. Agora você deve ver sua nova réplica listada em Réplica(s). Verifique se o status da réplica é "Bem-sucedido", o que indica que ela foi criada com êxito.

    Captura de tela da lista de réplicas que foram criadas para o repositório de configuração.

Eliminar réplicas

Para excluir uma réplica no portal, siga as etapas abaixo.

  1. Na sua loja de Configuração de Aplicações, em Definições, selecione Replicação geográfica.

  2. Em Réplica(s), selecione o ... à direita da réplica que deseja excluir. Selecione Excluir na lista suspensa.

     Captura de tela mostrando os três pontos à direita da réplica que está sendo selecionada, mostrando a opção de exclusão.

  3. Verifique o nome da réplica a ser excluída e selecione OK para confirmar.

  4. Quando o processo estiver concluído, verifique na lista de réplicas que a réplica correta foi excluída.

Descoberta automática de réplicas

Os provedores de Configuração de Aplicativo podem descobrir automaticamente quaisquer réplicas adicionais de um determinado ponto de extremidade de Configuração de Aplicativo e tentar se conectar a elas. Esse recurso permite que você se beneficie da replicação geográfica sem ter que alterar seu código ou reimplantar seu aplicativo. Isso significa que você pode habilitar a replicação geográfica ou adicionar réplicas extras mesmo depois que seu aplicativo for implantado.

A descoberta automática de réplicas está habilitada por padrão, mas você pode consultar o código de exemplo a seguir para desativá-la (não recomendado).

Edite a chamada para o AddAzureAppConfiguration método, que geralmente é encontrado no program.cs arquivo do seu aplicativo.

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

    // Other changes to options
});

Nota

O suporte à descoberta automática de réplicas estará disponível se você usar a versão 7.1.0 ou posterior de qualquer um dos pacotes a seguir.

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

Dimensionamento e failover com réplicas

Cada réplica que você cria tem seu ponto de extremidade dedicado. Se seu aplicativo reside em vários locais geográficos, você pode atualizar cada implantação de seu aplicativo em um local para se conectar à réplica mais próxima desse local, o que ajuda a minimizar a latência de rede entre seu aplicativo e a Configuração do aplicativo. Como cada réplica tem sua cota de solicitação separada, essa configuração também ajuda a escalabilidade do seu aplicativo enquanto ele cresce para um serviço distribuído de várias regiões.

Quando a replicação geográfica está habilitada e se uma réplica não estiver acessível, você pode permitir que seu aplicativo faça failover para outra réplica para melhorar a resiliência. Os provedores de configuração de aplicativos têm suporte interno a failover por meio de réplicas fornecidas pelo usuário, bem como réplicas adicionais descobertas automaticamente. Você pode fornecer uma lista de seus pontos de extremidade de réplica na ordem do ponto de extremidade mais preferido para o menos preferido. Quando o ponto de extremidade atual não estiver acessível, o provedor fará failover para um ponto de extremidade menos preferido, mas tentará se conectar aos pontos de extremidade mais preferenciais de tempos em tempos. Se todas as réplicas fornecidas pelo usuário não estiverem acessíveis, as réplicas descobertas automaticamente serão selecionadas aleatoriamente e usadas. Quando um ponto de extremidade mais preferido estiver disponível, o provedor mudará para ele para solicitações futuras.

Supondo que você tenha um aplicativo usando a Configuração de Aplicativo do Azure, você pode atualizá-lo como o código de exemplo a seguir para aproveitar o recurso de failover. Você pode fornecer uma lista de pontos de extremidade para autenticação do Microsoft Entra ou uma lista de cadeias de conexão para autenticação baseada em chave de acesso.

Edite a chamada para o AddAzureAppConfiguration método, que geralmente é encontrado no program.cs arquivo do seu aplicativo.

Conecte-se com o 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
});

Conectar-se com a cadeia de conexão

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

O suporte a failover estará disponível se você usar a versão 6.0.0 ou posterior de qualquer um dos seguintes pacotes.

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

O failover pode ocorrer se o provedor de Configuração do Aplicativo observar as seguintes condições.

  • Recebe respostas com status de serviço indisponível (código de status HTTP 500 ou superior).
  • Experiências com problemas de conectividade de rede.
  • As solicitações são limitadas (código de status HTTP 429).

O failover não acontecerá para erros de cliente, como falhas de autenticação.

Balanceamento de carga com réplicas

Por padrão, seu aplicativo sempre envia solicitações para o ponto de extremidade preferido que você fornece, exceto no caso de um failover. No entanto, além do failover, as réplicas também podem ser usadas para equilibrar a carga de solicitações. Ao distribuir solicitações proativamente em todas as réplicas disponíveis ao longo do tempo, você pode evitar o esgotamento da cota de solicitação de uma única réplica e melhorar a escalabilidade geral do seu aplicativo.

Os provedores de Configuração de Aplicativo oferecem suporte interno para balanceamento de carga entre réplicas, sejam elas fornecidas em código ou descobertas automaticamente. Você pode usar os seguintes exemplos de código para habilitar esse recurso em seu aplicativo (recomendado).

Edite a chamada para o AddAzureAppConfiguration método, que geralmente é encontrado no program.cs arquivo do seu aplicativo.

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

    // Other changes to options
});

Nota

O suporte ao balanceamento de carga estará disponível se você usar a versão 8.0.0-preview.3 ou posterior de qualquer um dos pacotes a seguir.

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

Próximos passos