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"