Regio's voor een Azure Cosmos DB-account bijwerken met behulp van PowerShell
VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin Tafel
Met dit PowerShell-script worden de Azure-regio's bijgewerkt die door een Azure Cosmos DB-account worden gebruikt. U kunt dit script gebruiken om een Azure-regio toe te voegen of de failovervolgorde van de regio te wijzigen.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Vereisten
U hebt een bestaand Azure Cosmos DB-account in een Azure-resourcegroep nodig.
Voor het script is Azure PowerShell Az 5.4.0 of hoger vereist. Voer deze opdracht uit
Get-Module -ListAvailable Az
om uw geïnstalleerde versies weer te geven. Als u PowerShell wilt installeren, raadpleegt u De Azure PowerShell-module installeren.Voer Connect-AzAccount uit om u aan te melden bij Azure.
Voorbeeldscript
Met de opdracht Update-AzCosmosDBAccountRegion worden Azure-regio's bijgewerkt voor een Azure Cosmos DB-account. De opdracht vereist een resourcegroepnaam, een Azure Cosmos DB-accountnaam en een lijst met Azure-regio's in de gewenste failovervolgorde.
In dit script haalt de opdracht Get-AzCosmosDBAccount het Azure Cosmos DB-account op dat u opgeeft. New-AzCosmosDBLocationObject maakt een object van het type PSLocation
. Update-AzCosmosDBAccountRegion
gebruikt de PSLocation
parameter om de accountregio's bij te werken.
- Als u een regio toevoegt, wijzigt u de eerste failoverregio niet in dezelfde bewerking. Wijzig de volgorde van failoverprioriteit in een afzonderlijke bewerking.
- U kunt geen regio's in dezelfde bewerking wijzigen als het wijzigen van andere eigenschappen van het Azure Cosmos DB-account. Doe deze bewerkingen afzonderlijk.
In dit voorbeeld wordt een API voor een NoSQL-account gebruikt. Als u dit voorbeeld voor andere API's wilt gebruiken, kopieert u de gerelateerde eigenschappen en past u deze toe op uw API-specifiek script.
# 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
Hoewel het script een resultaat retourneert, is de updatebewerking mogelijk niet voltooid. Controleer de status van de bewerking in Azure Portal met behulp van het activiteitenlogboek van het Azure Cosmos DB-account.
Azure-resourcegroep verwijderen
Als u uw Azure Cosmos DB-account wilt verwijderen, kunt u de PowerShell-opdracht Remove-AzResourceGroup gebruiken om de resourcegroep te verwijderen. Met deze opdracht verwijdert u de Azure-resourcegroep en alle resources erin, inclusief Azure Cosmos DB-accounts en hun containers en databases.
Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"