Adicionar regiões, alterar a prioridade do failover, disparar failover para uma conta do Azure Cosmos DB usando a CLI do Azure

APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table

O script neste artigo demonstra três operações.

  • Adicione uma região a uma conta existente do Azure Cosmos DB.
  • Alterar a prioridade do failover regional (aplica-se às contas que usam o failover gerenciado pelo serviço)
  • Disparar um failover manual de regiões primárias para secundárias (aplica-se a contas com failover manual)

Esse script usa uma conta API para NoSQL, mas essas operações são idênticas em todas as APIs de banco de dados no Azure Cosmos DB.

Importante

Não é possível adicionar e remover operações de região em uma conta do Azure Cosmos DB enquanto você altera outras propriedades.

Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

  • Este artigo exige a versão 2.9.1 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.

Exemplo de script

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.

Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com.

Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e pressione Enter para executá-los.

Entrar no Azure

O Cloud Shell é autenticado automaticamente na conta inicial usada para entrar. Use o seguinte script para entrar usando uma assinatura diferente, substituindo <Subscription ID> pela ID da Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa

Executar o script

# Region replica operations for an Azure Cosmos account

# Note: Azure Comos accounts cannot include updates to regions with changes to other properties in the same operation

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
failoverLocation1="South Central US"
failoverLocation2="North Central US"
resourceGroup="msdocs-cosmosdb-rg-$randomIdentifier"
tag="regions-cosmosdb"
account="msdocs-account-cosmos-$randomIdentifier" #needs to be lower case

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a Cosmos DB account with default values
# Use appropriate values for --kind or --capabilities for other APIs
echo "Creating $account for CosmosDB"
az cosmosdb create --name $account --resource-group $resourceGroup

# Specify region failover locations and priorities
echo "Adding $failoverLocation1 and $failoverLocation2"
az cosmosdb update --name $account --resource-group $resourceGroup --locations regionName="$location" failoverPriority=0 isZoneRedundant=False --locations regionName="$failoverLocation1" failoverPriority=1 isZoneRedundant=False --locations regionName="$failoverLocation2" failoverPriority=2 isZoneRedundant=False

# Make failoverLocation2 the next region to fail over to instead of failoverLocation1 
echo "Switching failover priority"
az cosmosdb failover-priority-change --name $account --resource-group $resourceGroup --failover-policies "$location=0" "$failoverLocation1=2" "$failoverLocation2=1"

# Initiate a manual failover and promote failoverLocation1 as primary write region
echo "Failing over to $failoverLocation1"
az cosmosdb failover-priority-change --name $account --resource-group $resourceGroup --failover-policies "$location=2" "$failoverLocation1=0" "$failoverLocation2=1"

Limpar os recursos

Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete, a menos que você necessite desses recursos com frequência. A criação e a exclusão de alguns desses recursos podem demorar um pouco.

az group delete --name $resourceGroup

Exemplo de referência

Este script usa os comandos a seguir. Cada comando da tabela é vinculado à documentação específica do comando.

Comando Observações
az group create Cria um grupo de recursos no qual todos os recursos são armazenados.
az cosmosdb create Cria uma conta do Banco de Dados Cosmos do Azure.
az cosmosdb update Atualiza uma conta do Azure Cosmos DB (adicionar ou remover região).
az cosmosdb failover-priority-change Atualize a prioridade de failover ou dispare um failover em uma conta do Azure Cosmos DB.
az group delete Exclui um grupo de recursos, incluindo todos os recursos aninhados.

Próximas etapas

Para obter mais informações sobre a CLI do Azure Cosmos DB, confira documentação da CLI do Azure Cosmos DB.

Para exemplos de CLI do Azure para APIs específicas, consulte: