Compartir a través de


Actualización de las regiones en una cuenta de Azure Cosmos DB mediante PowerShell

SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table

Este script de PowerShell actualiza las regiones de Azure que usa una cuenta de Azure Cosmos DB y se puede usar para agregar una región de Azure o cambiar el orden de conmutación por error de la región.

Nota

Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.

Requisitos previos

  • Necesita una cuenta existente de Azure Cosmos DB en un grupo de recursos de Azure.

  • El script requiere Azure PowerShell Az 5.4.0, o cualquier versión posterior. Ejecute Get-Module -ListAvailable Az para enumerar las versiones instaladas. Si necesita instalar PowerShell, consulte Instalación del módulo de Azure PowerShell.

  • Ejecute Connect AzAccount para iniciar sesión en Azure.

Script de ejemplo

El comando Update-AzCosmosDBAccountRegion actualiza las regiones de Azure en una cuenta de Azure Cosmos DB. El comando requiere un nombre de grupo de recursos, un nombre de cuenta de Azure Cosmos DB y una lista de regiones de Azure en el orden de conmutación por error deseado.

En este script, el comando Get-AzCosmosDBAccount obtiene la cuenta de Azure Cosmos DB que especifique. New-AzCosmosDBLocationObject crea un objeto del tipo PSLocation. Update-AzCosmosDBAccountRegion usa el parámetro PSLocation para actualizar las regiones de la cuenta.

  • Si agrega una región, no cambie la primera región de conmutación por error en la misma operación. Cambie el orden de prioridad de conmutación por error en otra operación.
  • Las regiones no se pueden modificar en la misma operación en que se cambian otras propiedades de la cuenta de Azure Cosmos DB. Estas operaciones se deben realizar por separado.

En este ejemplo se usa una cuenta de la API para NoSQL. Para usar este ejemplo para otras API, copie las propiedades relacionadas y aplíquelas al script específico de la 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

Aunque el script devuelva un resultado, es posible que la operación de actualización no finalice. Compruebe el estado de la operación en Azure Portal mediante el registro de actividad de la cuenta de Azure Cosmos DB.

Eliminación de un grupo de recursos de Azure

Si desea eliminar la cuenta de Azure Cosmos DB, puede usar el comando Remove-AzResourceGroup de PowerShell para quitar su grupo de recursos. Este comando quita el grupo de recursos de Azure y todos los recursos que contiene, incluidas las cuentas de Azure Cosmos DB y sus contenedores y bases de datos.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Pasos siguientes