Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: NoSQL
В следующем руководстве описывается, как использовать PowerShell для сценариев и автоматизации управления ресурсами Azure Cosmos DB для NoSQL, включая учетную запись Azure Cosmos DB, базу данных, контейнер и пропускную способность. Командлеты PowerShell для других API см. в примерах PowerShell для Cassandra, примерах PowerShell для API для MongoDB, примерах PowerShell для Gremlin, примерах PowerShell для таблицы
Примечание.
В примерах этой статьи используются командлеты управления Az.CosmosDB. Сведения о последних изменениях см. на странице справочника по API Az.CosmosDB.
Для кроссплатформенного управления Azure Cosmos DB можно использовать Az
Az.CosmosDB
кроссплатформенные командлеты PowerShell и Azure CLI, REST API или портал Azure.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Чтобы начать работу, см. статью Установка Azure PowerShell. Чтобы узнать, как выполнить миграцию на модуль Az PowerShell, см. Перенос Azure PowerShell с AzureRM на Az.
Начало работы
Следуйте инструкциям из статьи об установке и настройке Azure PowerShell, чтобы установить средство PowerShell и войти через него в учетную запись Azure.
Внимание
Ресурсы Azure Cosmos DB нельзя переименовать, так как это нарушает работу Azure Resource Manager с URI ресурсов.
Учетные записи Azure Cosmos DB
В следующих разделах показано, как управлять учетной записью Azure Cosmos DB, в том числе:
- Создание учетной записи Azure Cosmos DB
- Обновление учетной записи Azure Cosmos DB
- Вывод списка всех учетных записей Azure Cosmos DB в подписке
- Получение учетной записи Azure Cosmos DB
- Удаление учетной записи Azure Cosmos DB
- Обновление тегов для учетной записи Azure Cosmos DB
- Изменение приоритета отработки отказа для учетной записи Azure Cosmos DB
- Принудительное аварийное переключение учетной записи Azure Cosmos DB
- Список блокировок ресурсов в учетной записи Azure Cosmos DB
Создание учетной записи Azure Cosmos DB
Эта команда создает учетную запись базы данных Azure Cosmos DB с поддержкой множества регионов, перехода на другой регион, управляемого службой и политики согласованности с ограниченным устареванием.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$apiKind = "Sql"
$consistencyLevel = "BoundedStaleness"
$maxStalenessInterval = 300
$maxStalenessPrefix = 100000
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
New-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-LocationObject $locations `
-Name $accountName `
-ApiKind $apiKind `
-EnableAutomaticFailover:$true `
-DefaultConsistencyLevel $consistencyLevel `
-MaxStalenessIntervalInSeconds $maxStalenessInterval `
-MaxStalenessPrefix $maxStalenessPrefix
-
$resourceGroupName
Группа ресурсов Azure, в которую необходимо развернуть учетную запись Azure Cosmos DB. Этот объект должен уже существовать. -
$locations
— регионы для учетной записи базы данных, гдеFailoverPriority 0
обозначает регион для записи. -
$accountName
Имя учетной записи Azure Cosmos DB. Имя должно быть уникальным, состоять из букв нижнего регистра, содержать только буквенно-цифровые символы и символ "-", а также иметь длину от 3 до 31 символа. -
$apiKind
Тип создаваемой учетной записи Azure Cosmos DB. Дополнительные сведения см. в API в Azure Cosmos DB. -
$consistencyPolicy
,$maxStalenessInterval
и$maxStalenessPrefix
уровень согласованности по умолчанию и параметры учетной записи Azure Cosmos DB. Дополнительные сведения см. в статье о настраиваемых уровнях согласованности в Azure Cosmos DB.
Учетные записи Azure Cosmos DB могут быть настроены с использованием IP-брандмауэра, конечных точек службы виртуальной сети и частных конечных точек. Сведения о настройке брандмауэра IP-адресов для Azure Cosmos DB см. в этой статье. Сведения о включении конечных точек службы для Azure Cosmos DB см. в статье "Настройка доступа из виртуальных сетей". Сведения о включении частных конечных точек для Azure Cosmos DB см. в статье Настройка доступа из частных конечных точек.
Перечислите все учетные записи Azure Cosmos DB в группе ресурсов
Эта команда перечисляет все учетные записи Azure Cosmos DB в Группе ресурсов.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Получение свойств учетной записи Azure Cosmos DB
Эта команда позволяет получить свойства существующей учетной записи Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Обновление учетной записи Azure Cosmos DB
Эта команда позволяет обновить свойства учетной записи базы данных Azure Cosmos DB. В контексте свойств можно выполнить такие изменения:
- добавление или удаление регионов;
- изменение политики согласованности по умолчанию;
- изменение фильтра диапазона IP-адресов;
- изменение конфигурации виртуальной сети;
- включение записи в нескольких регионах.
Примечание.
Вы не можете одновременно добавлять или удалять регионы (locations
) и изменять другие свойства для учетной записи Azure Cosmos DB. Изменение регионов нужно выполнять как отдельную операцию, не объединяя ее с другими изменениями в учетной записи.
Примечание.
Эта команда позволяет добавлять и удалять регионы, но не изменять приоритеты резервирования или инициировать резервирование вручную. См. также Изменение приоритета отказоустойчивости и Запуск ручного переключения.
Совет
При добавлении нового региона все данные должны быть полностью реплицированы и зафиксированы в новом регионе, прежде чем регион будет помечен как доступный. Продолжительность операции зависит от объема данных, хранящихся в учетной записи. Если выполняется операция асинхронного масштабирования пропускной способности, увеличение масштаба пропускной способности будет приостановлено и автоматически возобновится после завершения операции добавления или удаления региона.
# Create account with two regions
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$apiKind = "Sql"
$consistencyLevel = "Session"
$enableAutomaticFailover = $true
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
# Create the Azure Cosmos DB account
New-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-LocationObject $locations `
-Name $accountName `
-ApiKind $apiKind `
-EnableAutomaticFailover:$enableAutomaticFailover `
-DefaultConsistencyLevel $consistencyLevel
# Add a region to the account
$locationObject2 = @()
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "West US" -FailoverPriority 1 -IsZoneRedundant 0
$locationObject2 += New-AzCosmosDBLocationObject -LocationName "South Central US" -FailoverPriority 2 -IsZoneRedundant 0
Update-AzCosmosDBAccountRegion `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-LocationObject $locationObject2
Write-Host "Update-AzCosmosDBAccountRegion returns before the region update is complete."
Write-Host "Check account in Azure portal or using Get-AzCosmosDBAccount for region status."
Write-Host "When region was added, press any key to continue."
$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
$HOST.UI.RawUI.Flushinputbuffer()
# Remove West US region from the account
$locationObject3 = @()
$locationObject3 += New-AzCosmosDBLocationObject -LocationName "East US" -FailoverPriority 0 -IsZoneRedundant 0
$locationObject3 += New-AzCosmosDBLocationObject -LocationName "South Central US" -FailoverPriority 1 -IsZoneRedundant 0
Update-AzCosmosDBAccountRegion `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-LocationObject $locationObject3
Write-Host "Update-AzCosmosDBAccountRegion returns before the region update is complete."
Write-Host "Check account in Azure portal or using Get-AzCosmosDBAccount for region status."
Включение нескольких регионов записи для учетной записи Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$enableAutomaticFailover = $false
$enableMultiMaster = $true
# First disable service-managed failover - cannot have both service-managed
# failover and multi-region writes on an account
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableAutomaticFailover:$enableAutomaticFailover
# Now enable multi-region writes
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableMultipleWriteLocations:$enableMultiMaster
Удаление учетной записи Azure Cosmos DB
Эта команда удаляет существующую учетную запись Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Обновление тегов учетной записи Azure Cosmos DB
Эта команда задает теги ресурсов Azure для учетной записи Azure Cosmos DB. Теги можно задать как при создании учетной записи, так New-AzCosmosDBAccount
и при обновлении учетной записи.Update-AzCosmosDBAccount
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Включить отработку отказа под управлением службы
Следующая команда настроит учетную запись Azure Cosmos DB на выполнение обслуживания отказа, управляемого службой, для перевода на вторичный регион, если основной регион станет недоступным.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$enableAutomaticFailover = $true
$enableMultiMaster = $false
# First disable multi-region writes - cannot have both automatic
# failover and multi-region writes on an account
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableMultipleWriteLocations:$enableMultiMaster
# Now enable service-managed failover
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-EnableAutomaticFailover:$enableAutomaticFailover
Изменение приоритета отказоустойчивости
Для учетных записей, настроенных с отказоустойчивостью под управлением службы, можно изменить последовательность, в которой Azure Cosmos DB будет переводить вторичные реплики в первичный статус, если основной станет недоступным.
В приведенном ниже примере предполагается текущий приоритет переключения при отказе: West US = 0
, East US = 1
, South Central US = 2
. Эта команда изменит его на West US = 0
, South Central US = 1
, East US = 2
.
Внимание
Изменение расположения для failoverPriority=0
вызовет ручной переход для учетной записи Azure Cosmos DB. Любые другие изменения приоритета не приведут к переключению в случае отказа.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("West US", "South Central US", "East US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Инициация ручного переключения на резервный сервер
Для учетных записей, где настроено ручное переключение, можно выполнить переключение и перевести вторичную реплику в статус первичной, изменив failoverPriority=0
. Эту операцию можно использовать для проведения учений по восстановлению после аварий, чтобы протестировать план восстановления.
В приведённом ниже примере предполагается, что учетная запись имеет текущий приоритет переключения на West US = 0
и East US = 1
и переключите регионы.
Внимание
Изменение locationName
на failoverPriority=0
инициирует ручное переключение для учетной записи Azure Cosmos DB. Любые другие изменения приоритета не приведут к переключению на резервный.
Примечание.
Если выполнить операцию переключения вручную во время асинхронного масштабирования пропускной способности, операция будет приостановлена. Автоматическое возобновление произойдет после завершения процесса переключения.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Список блокировок ресурсов в учетной записи Azure Cosmos DB
Блокировки ресурсов можно применять к ресурсам Azure Cosmos DB, включая базы данных и коллекции. В примере ниже показано, как вывести список всех блокировок ресурсов Azure в учетной записи Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
База данных Azure Cosmos DB
В следующих разделах описано управление базой данных Azure Cosmos DB, включая:
- создание базы данных Azure Cosmos DB;
- создание базы данных Azure Cosmos DB с общей пропускной способностью;
- Получите пропускную способность базы данных Azure Cosmos DB
- Переведите пропускную способность базы данных на автомасштабирование
- список всех баз данных Azure Cosmos DB в учетной записи
- получите одну базу данных Azure Cosmos DB
- удаление базы данных Azure Cosmos DB.
- создание блокировки ресурса в базе данных Azure Cosmos DB для предотвращения удаления;
- снятие блокировки ресурса в базе данных Azure Cosmos DB.
Создание базы данных Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Создание базы данных Azure Cosmos DB с общей пропускной способностью
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Получение сведений о пропускной способности для базы данных Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Переход на автомасштабирование пропускной способности базы данных
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Получите все базы данных Azure Cosmos DB в учетной записи
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Получите одну базу данных Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Удаление базы данных Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Создание блокировки ресурса в базе данных Azure Cosmos DB для предотвращения удаления
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
Снятие блокировки ресурса в базе данных Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
Remove-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName
Контейнер Azure Cosmos DB
В следующих разделах описаны процедуры управления контейнером Azure Cosmos DB, включая:
- Создание контейнера Azure Cosmos DB
- создание контейнера Azure Cosmos DB с возможностью автомасштабирования;
- Создать контейнер Azure Cosmos DB с большим ключом раздела
- получение сведений о пропускной способности контейнера Azure Cosmos DB;
- переход на автомасштабирование пропускной способности контейнера;
- создание контейнера Azure Cosmos DB с настраиваемой индексацией;
- создание контейнера Azure Cosmos DB с выключенной индексацией;
- Создайте контейнер для Azure Cosmos DB с уникальным ключом и сроком жизни.
- создание контейнера Azure Cosmos DB с разрешением конфликтов;
- вывод списка всех контейнеров Azure Cosmos DB в базе данных;
- Получить отдельный контейнер Azure Cosmos DB в базе данных
- удаление контейнера Azure Cosmos DB.
- создание блокировки ресурса в контейнере Azure Cosmos DB для предотвращения удаления;
- снятие блокировки ресурса в контейнере Azure Cosmos DB.
Создание контейнера Azure Cosmos DB
# Create an Azure Cosmos DB container with default indexes and throughput at 400 RU
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$throughput = 400 #minimum = 400
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-Throughput $throughput
Создание контейнера Azure Cosmos DB с возможностью автомасштабирования
# Create an Azure Cosmos DB container with default indexes and autoscale throughput at 4000 RU
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$autoscaleMaxThroughput = 4000 #minimum = 4000
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-AutoscaleMaxThroughput $autoscaleMaxThroughput
Создание контейнера Azure Cosmos DB с большим размером ключа раздела
# Create an Azure Cosmos DB container with a large partition key value (version = 2)
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-PartitionKeyVersion 2
Получение сведений о пропускной способности контейнера Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Перевод пропускной мощности контейнера на автоматическое масштабирование
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Создание контейнера Azure Cosmos DB с настраиваемой политикой индексации
# Create a container with a custom indexing policy
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$indexPathIncluded = "/*"
$indexPathExcluded = "/myExcludedPath/*"
$includedPathIndex = New-AzCosmosDBSqlIncludedPathIndex -DataType String -Kind Range
$includedPath = New-AzCosmosDBSqlIncludedPath -Path $indexPathIncluded -Index $includedPathIndex
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy `
-IncludedPath $includedPath `
-ExcludedPath $indexPathExcluded `
-IndexingMode Consistent `
-Automatic $true
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-IndexingPolicy $indexingPolicy
Создание контейнера Azure Cosmos DB с выключенной индексацией
# Create an Azure Cosmos DB container with no indexing
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$indexingPolicy = New-AzCosmosDBSqlIndexingPolicy `
-IndexingMode None
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-IndexingPolicy $indexingPolicy
Создание контейнера Azure Cosmos DB с политикой создания уникального ключа и сроком жизни
# Create a container with a unique key policy and TTL of one day
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$uniqueKeyPath = "/myUniqueKeyPath"
$ttlInSeconds = 86400 # Set this to -1 (or don't use it at all) to never expire
$uniqueKey = New-AzCosmosDBSqlUniqueKey `
-Path $uniqueKeyPath
$uniqueKeyPolicy = New-AzCosmosDBSqlUniqueKeyPolicy `
-UniqueKey $uniqueKey
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-UniqueKeyPolicy $uniqueKeyPolicy `
-TtlInSeconds $ttlInSeconds
Создание контейнера Azure Cosmos DB с разрешением конфликтов
Для записи всех конфликтов в ленту ConflictsFeed и чтобы их обрабатывать отдельно, передайте параметр -Type "Custom" -Path ""
.
# Create container with last-writer-wins conflict resolution policy
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$conflictResolutionPath = "/myResolutionPath"
$conflictResolutionPolicy = New-AzCosmosDBSqlConflictResolutionPolicy `
-Type LastWriterWins `
-Path $conflictResolutionPath
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-ConflictResolutionPolicy $conflictResolutionPolicy
Чтобы создать политику разрешения конфликтов для использования хранимой процедуры, вызовите New-AzCosmosDBSqlConflictResolutionPolicy
и передайте параметры -Type
и -ConflictResolutionProcedure
.
# Create container with custom conflict resolution policy using a stored procedure
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$partitionKeyPath = "/myPartitionKey"
$conflictResolutionSprocName = "mysproc"
$conflictResolutionSproc = "/dbs/$databaseName/colls/$containerName/sprocs/$conflictResolutionSprocName"
$conflictResolutionPolicy = New-AzCosmosDBSqlConflictResolutionPolicy `
-Type Custom `
-ConflictResolutionProcedure $conflictResolutionSproc
New-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-PartitionKeyKind Hash `
-PartitionKeyPath $partitionKeyPath `
-ConflictResolutionPolicy $conflictResolutionPolicy
Вывод списка всех контейнеров Azure Cosmos DB в базе данных
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Получите один контейнер Azure Cosmos DB в базе данных
# Get a single Azure Cosmos DB container in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Удаление контейнера Azure Cosmos DB
# Delete an Azure Cosmos DB container
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Remove-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Создание блокировки ресурса в контейнере Azure Cosmos DB для предотвращения удаления
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$resourceName = "$accountName/$databaseName/$containerName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
Снятие блокировки ресурса в контейнере Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$resourceName = "$accountName/$databaseName/$containerName"
$lockName = "myResourceLock"
Remove-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName