Configurar suporte a várias regiões no SDK
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();