Freigeben über


Aktualisieren von Regionen für ein Azure Cosmos DB-Konto mithilfe von PowerShell

GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle

Dieses PowerShell-Skript aktualisiert die von einem Azure Cosmos DB-Konto verwendeten Azure-Regionen. Mit diesem Skript können Sie eine Azure-Region hinzufügen oder die Failoverreihenfolge der Regionen ändern.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Voraussetzungen

  • Sie benötigen ein vorhandenes Azure Cosmos DB-Konto in einer Azure-Ressourcengruppe.

  • Für das Skript ist mindestens Azure PowerShell Az 5.4.0 erforderlich. Führen Sie Get-Module -ListAvailable Az aus, um die installierten Versionen aufzulisten. Wenn Sie PowerShell installieren müssen, finden Sie unter Installieren des Azure PowerShell-Moduls Informationen dazu.

  • Führen Sie zum Anmelden bei Azure Connect-AzAccount aus.

Beispielskript

Der Befehl Update-AzCosmosDBAccountRegion aktualisiert Azure-Regionen für ein Azure Cosmos DB-Konto. Der Befehl erfordert einen Ressourcengruppennamen, einen Azure Cosmos DB-Kontonamen und eine Liste von Azure-Regionen in der gewünschten Failoverreihenfolge.

In diesem Skript ruft der Befehl Get-AzCosmosDBAccount das von Ihnen angegebene Azure Cosmos DB-Konto ab. New-AzCosmosDBLocationObject erstellt ein Objekt vom Typ PSLocation. Update-AzCosmosDBAccountRegion verwendet den Parameter PSLocation zum Aktualisieren der Kontoregionen.

  • Wenn Sie eine Region hinzufügen, ändern Sie nicht die erste Failoverregion im selben Vorgang. Ändern Sie die Prioritätsreihenfolge für den Failover in einem separaten Vorgang.
  • Sie können Regionen nicht in demselben Vorgang wie andere Azure Cosmos DB-Kontoeigenschaften ändern. Führen Sie diese Vorgänge separat aus.

In diesem Beispiel wird ein „API für NoSQL“-Konto verwendet. Wenn Sie dieses Beispiel für andere APIs verwenden möchten, kopieren Sie die zugehörigen Eigenschaften, und wenden Sie sie auf Ihr API-spezifisches Skript an.

# 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

Obwohl das Skript ein Ergebnis zurückgibt, ist der Aktualisierungsvorgang möglicherweise nicht abgeschlossen. Überprüfen Sie den Status des Vorgangs im Azure-Portal mithilfe des Aktivitätsprotokolls für das Azure Cosmos DB-Konto.

Löschen einer Azure-Ressourcengruppe

Wenn Sie Ihr Azure Cosmos DB-Konto löschen möchten, können Sie den PowerShell-Befehl Remove-AzResourceGroup verwenden, um die entsprechende Ressourcengruppe zu entfernen. Dieser Befehl entfernt die Azure-Ressourcengruppe und alle darin enthaltenen Ressourcen, einschließlich Azure Cosmos DB-Konten und deren Container und Datenbanken.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Nächste Schritte