Изменение регионов в учетной записи Azure Cosmos DB с помощью PowerShell

ПРИМЕНИМО К: Nosql Mongodb Кассандра Гремлин Таблица

Этот скрипт PowerShell обновляет регионы Azure, которые использует учетная запись Azure Cosmos DB. Этот скрипт можно использовать для добавления региона Azure или изменения порядка регионов при отработке отказа.

Примечание

Для взаимодействия с Azure рекомендуется использовать модуль Azure Az PowerShell. Чтобы начать работу, см. статью Установка Azure PowerShell. Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.

Предварительные требования

  • Необходима существующая учетная запись Azure Cosmos DB в группе ресурсов Azure.

  • Для этого скрипта требуется модуль Azure PowerShell Az 5.4.0 или более поздней версии. Запустите Get-Module -ListAvailable Az, чтобы получить список установленных версий. Если необходимо выполнить установку PowerShell, см. статью Установка модуля Azure PowerShell.

  • Запустите Connect AzAccount для входа Azure.

Пример скрипта

Команда Update-AzCosmosDBAccountRegion обновляет регионы Azure для учетной записи Cosmos Azure DB. Для выполнения команды требуется имя группы ресурсов, имя учетной записи Cosmos Azure DB и список регионов Azure в нужном порядке отработки отказа.

В этом сценарии команда Get-AzCosmosDBAccount возвращает указанную учетную запись Azure Cosmos DB. New-AzCosmosDBLocationObject создает объект типа PSLocation. Update-AzCosmosDBAccountRegion использует параметр PSLocation для обновления регионов учетной записи.

  • При добавлении региона не изменяйте первый регион отработки отказа в той же операции. Изменяйте порядок регионов при отработке отказа в отдельной операции.
  • Изменять в одной операции регионы вместе с другими свойствами учетной записи Azure Cosmos DB нельзя. Выполняйте эти операции отдельно.

В этом примере используется учетная запись API для NoSQL. Чтобы использовать этот пример с другими API, соответствующие свойства необходимо скопировать в скрипт для такого 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

Хотя скрипт возвращает результат, операция обновления может быть не завершена. Проверьте состояние операции на портале Azure с помощью журнала действий учетной записи Azure Cosmos DB.

Удаление группы ресурсов Azure

Если вы хотите удалить учетную запись Azure Cosmos DB, можно удалить группу ресурсов с помощью команды PowerShell Remove-AzResourceGroup. Эта команда удаляет группу ресурсов Azure и все ресурсы, включая учетные записи Azure Cosmos DB и их контейнеры и базы данных.

Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"

Дальнейшие действия