Aggiornare le aree per un account Azure Cosmos DB con PowerShell

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

Questo script di PowerShell aggiorna le aree di Azure usate da un account Azure Cosmos DB. È possibile usare questo script per aggiungere un'area di Azure o per modificare l'ordine di failover delle aree.

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Prerequisiti

  • È necessario un account Azure Cosmos DB esistente in un gruppo di risorse di Azure.

  • Questo script richiede Azure PowerShell Az 5.4.0 o versioni successive. Eseguire Get-Module -ListAvailable Az per elencare le versioni installate. Se è necessario installare Azure PowerShell, vedere Installare il modulo Azure PowerShell.

  • Eseguire Connect-AzAccount per accedere ad Azure.

Script di esempio

Il comando Update-AzCosmosDBAccountRegion aggiorna le aree di Azure per un account Azure Cosmos DB. Il comando richiede il nome di un gruppo di risorse, il nome di un account Azure Cosmos DB e un elenco delle aree di Azure nell'ordine di failover desiderato.

In questo script, il comando Get-AzCosmosDBAccount ottiene l'account Azure Cosmos DB specificato. New-AzCosmosDBLocationObject crea un oggetto di tipo PSLocation. Update-AzCosmosDBAccountRegion usa il parametro PSLocation per aggiornare le aree dell'account.

  • Se si aggiunge un'area, non modificare la prima area di failover nella stessa operazione. Modificare l'ordine di priorità di failover in un'operazione separata.
  • Non è possibile modificare le aree nella stessa operazione in cui si modificano altre proprietà dell'account Azure Cosmos DB. Eseguire queste operazioni separatamente.

Questo esempio usa un'API per un account NoSQL. Per usare questo esempio per altre API, copiare le proprietà correlate e applicarle allo script specifico dell'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

Anche se lo script restituisce un risultato, l'operazione di aggiornamento potrebbe non essere completata. Controllare lo stato dell'operazione nel portale di Azure usando il log attività dell'account Azure Cosmos DB.

Eliminare il gruppo di risorse di Azure

Se si vuole eliminare l'account Azure Cosmos DB, è possibile usare il comando di PowerShell Remove-AzResourceGroup per rimuovere il relativo gruppo di risorse. Questo comando rimuove il gruppo di risorse di Azure e tutte le risorse in esso contenute, inclusi gli account Azure Cosmos DB e i relativi contenitori e database.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Passaggi successivi