Atualizar as regiões de uma conta do Azure Cosmos DB usando o PowerShell

APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table

Este script do PowerShell atualiza as regiões do Azure usadas por uma conta do Azure Cosmos DB. É possível usá-lo para adicionar uma região do Azure ou alterar a ordem de failover de região.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

  • É necessário ter uma conta do Azure Cosmos DB em um grupo de recursos do Azure.

  • O script exige o Azure PowerShell Az 5.4.0 ou posterior. Execute Get-Module -ListAvailable Az para listar suas versões instaladas. Para instalar o PowerShell, confira Instalar o módulo do Azure PowerShell.

  • Execute Connect-AzAccount para entrar no Azure.

Exemplo de script

O comando Update-AzCosmosDBAccountRegion atualiza as regiões do Azure de uma conta do Azure Cosmos DB. O comando requer um nome de grupo de recursos, um nome de conta do Azure Cosmos DB e uma lista de regiões do Azure na ordem de failover desejada.

Neste script, o comando Get-AzCosmosDBAccount obtém a conta do Azure Cosmos DB especificada. New-AzCosmosDBLocationObject cria um objeto do tipo PSLocation. Update-AzCosmosDBAccountRegion usa o parâmetro PSLocation para atualizar as regiões da conta.

  • Se você adicionar uma região, não altere a primeira região de failover na mesma operação. Faça a alteração da prioridade de failover em outra operação.
  • Não é possível modificar regiões na mesma operação que altera outras propriedades da conta do Azure Cosmos DB. Faça essas operações separadamente.

Esse exemplo usa uma conta da API for NoSQL. Para usá-lo com outras APIs, copie as propriedades relacionadas e aplique-as ao script específico da API.

# Reference: Az.CosmosDB | https://docs.microsoft.com/powershell/module/az.cosmosdb
# --------------------------------------------------
# Purpose
# Update Cosmos DB account: Add an Azure region (location)
# NOTE: if adding a region to a single master account, do not change the first 
# region in the same operation. Change failover priority order in a
# separate operation.
# NOTE: this operation will return, but account updates may still be
# occurring. Check the account or Resource Group's activity log for status.
# --------------------------------------------------
# Variables - ***** SUBSTITUTE YOUR VALUES *****
$resourceGroupName = "myResourceGroup" # Resource Group must already exist
$accountName = "myaccount" # Must be all lower case

# Regions ordered by failover priority, with each indicating whether AZ-enabled
# Region AZ status can be checked at https://azure.microsoft.com/global-infrastructure/regions/
$locations = @(
    @{name = "East US"; azEnabled = $true};
    @{name = "West US"; azEnabled = $false};
)
# --------------------------------------------------

Write-Host "Get Cosmos DB account"
$account = Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName

$i = 0
$locationObjects = @()

ForEach ($location in $locations) {
    $locationObjects += New-AzCosmosDBLocationObject -LocationName $location.name -IsZoneRedundant $location.azEnabled -FailoverPriority ($i++)
}

Write-Host "Update Cosmos DB account region(s)"
Update-AzCosmosDBAccountRegion -InputObject $account -LocationObject $locationObjects

Embora o script retorne um resultado, a operação de atualização pode não ter sido concluída. Verifique o status da operação no portal do Azure usando o log de atividades da conta do Azure Cosmos DB.

Excluir um grupo de recursos do Azure

Para excluir sua conta do Azure Cosmos DB, use o comando Remove-AzResourceGroup do PowerShell, que remove o respectivo grupo de recursos. Além do grupo de recursos do Azure, esse comando remove todos os recursos nele, como contas do Azure Cosmos DB e contêineres e bancos de dados associados.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Próximas etapas