Dela via


Uppdatera regioner för ett Azure Cosmos DB-konto med hjälp av PowerShell

GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord

Det här PowerShell-skriptet uppdaterar de Azure-regioner som ett Azure Cosmos DB-konto använder. Du kan använda det här skriptet för att lägga till en Redundansordning för en Azure-region eller ändra region.

Kommentar

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Förutsättningar

  • Du behöver ett befintligt Azure Cosmos DB-konto i en Azure-resursgrupp.

  • Skriptet kräver Azure PowerShell Az 5.4.0 eller senare. Kör Get-Module -ListAvailable Az för att visa en lista över installerade versioner. Om du behöver installera PowerShell läser du Installera Azure PowerShell-modulen.

  • Kör Connect-AzAccount för att logga in på Azure.

Exempelskript

Kommandot Update-AzCosmosDBAccountRegion uppdaterar Azure-regioner för ett Azure Cosmos DB-konto. Kommandot kräver ett resursgruppsnamn, ett Azure Cosmos DB-kontonamn och en lista över Azure-regioner i önskad redundansordning.

I det här skriptet hämtar kommandot Get-AzCosmosDBAccount det Azure Cosmos DB-konto som du anger. New-AzCosmosDBLocationObject skapar ett objekt av typen PSLocation. Update-AzCosmosDBAccountRegion använder parametern PSLocation för att uppdatera kontoregionerna.

  • Om du lägger till en region ändrar du inte den första redundansregionen i samma åtgärd. Ändra prioritetsordning för redundans i en separat åtgärd.
  • Du kan inte ändra regioner i samma åtgärd som att ändra andra Azure Cosmos DB-kontoegenskaper. Utför dessa åtgärder separat.

Det här exemplet använder ett API för NoSQL-konto. Om du vill använda det här exemplet för andra API:er kopierar du de relaterade egenskaperna och tillämpar dem på ditt API-specifika skript.

# 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

Även om skriptet returnerar ett resultat kanske uppdateringsåtgärden inte är klar. Kontrollera status för åtgärden i Azure Portal med hjälp av aktivitetsloggen för Azure Cosmos DB-kontot.

Ta bort Azure-resursgrupp

Om du vill ta bort ditt Azure Cosmos DB-konto kan du ta bort resursgruppen med kommandot Remove-AzResourceGroup PowerShell. Det här kommandot tar bort Azure-resursgruppen och alla resurser i den, inklusive Azure Cosmos DB-konton och deras containrar och databaser.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Nästa steg