Configurar suporte a várias regiões no SDK

Concluído

No SDK do .NET para Azure Cosmos DB para NoSQL, configurar a região preferencial para gravar é uma questão de selecionar entre duas propriedades diferentes no objeto CosmosClientOptions .

Gorjeta

Se você não especificar uma região preferida, o SDK assumirá automaticamente como padrão a região principal da sua conta. A região primária é a primeira região na lista de regiões e, normalmente, é a região que você selecionou primeiro quando criou a conta do Azure Cosmos DB.

Selecionando uma única região de gravação

A propriedade ApplicationRegion especifica qual região você deseja que o SDK use para suas operações. Efetivamente, esta é a região gravável que você usará. Neste exemplo, a região selecionada é Oeste dos EUA.

CosmosClientOptions options = new()
{
    ApplicationRegion = Regions.WestUS
};
using CosmosClient client = new(connectionString, options);

Você também pode usar o CosmosClientBuilder para configurar a região preferida.

using CosmosClient client = builder
    .WithApplicationRegion(Regions.WestUS)
    .Build();

Depois que o cliente se conectar ao Azure Cosmos DB, ele extrairá uma lista de regiões e as priorizará com base na proximidade da região escolhida. Se a região selecionada não estiver disponível, o cliente tentará as regiões alternativas na ordem estabelecida.

Criando uma lista de regiões de gravação preferidas

Se quiser criar sua própria lista priorizada de regiões para tentar operações de leitura e gravação, você pode usar a propriedade ApplicationPreferredRegions . No primeiro exemplo, essa propriedade é definida como uma lista de três regiões em uma priorização personalizada.

CosmosClientOptions options = new()
{
    ApplicationPreferredRegions = new List<string>
    {
        Regions.WestUS,
        Regions.AustraliaSoutheast,
        Regions.NorthEurope
    }
};
using CosmosClient client = new(connectionString, options);

Novamente, esse mesmo exemplo pode ser implementado usando a classe CosmosClientBuilder .

using CosmosClient client = builder
    .WithApplicationPreferredRegions(
        new List<string>
        {
            Regions.WestUS,
            Regions.AustraliaSoutheast,
            Regions.NorthEurope
        }
    )
    .Build();