Aktualizowanie regionów dla konta usługi Azure Cosmos DB przy użyciu programu PowerShell

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

Ten skrypt programu PowerShell aktualizuje regiony platformy Azure używane przez konto usługi Azure Cosmos DB. Możesz użyć tego skryptu, aby dodać region świadczenia usługi Azure lub zmienić kolejność trybu failover w regionie.

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.

Wymagania wstępne

  • Potrzebujesz istniejącego konta usługi Azure Cosmos DB w grupie zasobów platformy Azure.

  • Skrypt wymaga modułu Azure PowerShell Az 5.4.0 lub nowszego. Uruchom polecenie Get-Module -ListAvailable Az , aby wyświetlić listę zainstalowanych wersji. Jeśli musisz zainstalować program PowerShell, zobacz Instalowanie modułu Azure PowerShell.

  • Uruchom polecenie Connect-AzAccount , aby zalogować się do platformy Azure.

Przykładowy skrypt

Polecenie Update-AzCosmosDBAccountRegion aktualizuje regiony platformy Azure dla konta usługi Azure Cosmos DB. Polecenie wymaga nazwy grupy zasobów, nazwy konta usługi Azure Cosmos DB i listy regionów platformy Azure w żądanej kolejności pracy w trybie failover.

W tym skrypcie polecenie Get-AzCosmosDBAccount pobiera określone konto usługi Azure Cosmos DB. New-AzCosmosDBLocationObject tworzy obiekt typu PSLocation. Update-AzCosmosDBAccountRegion używa parametru PSLocation w celu zaktualizowania regionów konta.

  • Jeśli dodasz region, nie zmieniaj pierwszego regionu trybu failover w tej samej operacji. Zmień kolejność priorytetu trybu failover w oddzielnej operacji.
  • Nie można modyfikować regionów w tej samej operacji, co zmiana innych właściwości konta usługi Azure Cosmos DB. Wykonaj te operacje oddzielnie.

W tym przykładzie użyto interfejsu API dla konta NoSQL. Aby użyć tego przykładu dla innych interfejsów API, skopiuj powiązane właściwości i zastosuj je do skryptu specyficznego dla interfejsu 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

Mimo że skrypt zwraca wynik, operacja aktualizacji może nie zostać zakończona. Sprawdź stan operacji w Azure Portal przy użyciu dziennika aktywności konta usługi Azure Cosmos DB.

Usuwanie grupy zasobów platformy Azure

Jeśli chcesz usunąć konto usługi Azure Cosmos DB, możesz usunąć grupę zasobów za pomocą polecenia Remove-AzResourceGroup programu PowerShell. To polecenie usuwa grupę zasobów platformy Azure i wszystkie jej zasoby, w tym konta usługi Azure Cosmos DB oraz ich kontenery i bazy danych.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Następne kroki