Správa prostředků Azure Cosmos DB for NoSQL pomocí PowerShellu
PLATÍ PRO: NoSQL
Následující příručka popisuje, jak pomocí PowerShellu skriptovat a automatizovat správu prostředků Azure Cosmos DB for NoSQL, včetně účtu služby Azure Cosmos DB, databáze, kontejneru a propustnosti. Rutiny PowerShellu pro jiná rozhraní API najdete v ukázkách PowerShellu pro Cassandra, ukázky PowerShellu pro rozhraní API pro MongoDB, ukázky PowerShellu pro Gremlin, ukázky PowerShellu pro tabulku.
Poznámka:
Ukázky v tomto článku používají rutiny pro správu Az.CosmosDB . Nejnovější změny najdete na referenční stránce rozhraní API Az.CosmosDB .
Ke správě služby Azure Cosmos DB pro různé platformy můžete tyto rutiny použít v PowerShellu pro různé platformy i v Azure CLI, rozhraní REST API nebo na webu Azure Portal.Az
Az.CosmosDB
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Začínáme
Postupujte podle pokynů v tématu Instalace a konfigurace Azure PowerShellu pro instalaci a přihlášení k účtu Azure v PowerShellu.
Důležité
Prostředky Azure Cosmos DB nelze přejmenovat, protože to porušuje způsob, jakým Azure Resource Manager funguje s identifikátory URI prostředků.
Účty Azure Cosmos DB
Následující části ukazují, jak spravovat účet služby Azure Cosmos DB, včetně:
- Vytvoření účtu služby Azure Cosmos DB
- Aktualizace účtu služby Azure Cosmos DB
- Výpis všech účtů Služby Azure Cosmos DB v předplatném
- Získání účtu služby Azure Cosmos DB
- Odstranění účtu služby Azure Cosmos DB
- Aktualizace značek pro účet služby Azure Cosmos DB
- Úprava priority převzetí služeb při selhání pro účet služby Azure Cosmos DB
- Aktivace ručního převzetí služeb při selhání pro účet služby Azure Cosmos DB
- Výpis zámků prostředků v účtu služby Azure Cosmos DB
Vytvoření účtu služby Azure Cosmos DB
Tento příkaz vytvoří účet databáze Azure Cosmos DB s několika oblastmi, převzetím služeb při selhání spravované službou a zásadou konzistence s ohraničenou neschytností.
$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
Skupina prostředků Azure, do které se má nasadit účet služby Azure Cosmos DB. Musí už existovat.$locations
Oblasti pro databázový účet, oblast sFailoverPriority 0
je oblast zápisu.$accountName
Název účtu služby Azure Cosmos DB. Musí být jedinečná, malá písmena, obsahovat pouze alfanumerické a "-" znaky a délku 3 až 31 znaků.$apiKind
Typ účtu služby Azure Cosmos DB, který chcete vytvořit. Další informace najdete v tématu Rozhraní API ve službě Azure Cosmos DB.$consistencyPolicy
,$maxStalenessInterval
a$maxStalenessPrefix
výchozí úroveň konzistence a nastavení účtu služby Azure Cosmos DB. Další informace najdete v tématu Úrovně konzistence ve službě Azure Cosmos DB.
Účty služby Azure Cosmos DB je možné nakonfigurovat s bránou firewall protokolu IP, koncovými body služby virtuální sítě a privátními koncovými body. Informace o tom, jak nakonfigurovat bránu firewall protokolu IP pro službu Azure Cosmos DB, najdete v tématu Konfigurace brány firewall protokolu IP. Informace o povolení koncových bodů služby pro službu Azure Cosmos DB najdete v tématu Konfigurace přístupu z virtuálních sítí. Informace o povolení privátních koncových bodů pro službu Azure Cosmos DB najdete v tématu Konfigurace přístupu z privátních koncových bodů.
Výpis všech účtů služby Azure Cosmos DB ve skupině prostředků
Tento příkaz zobrazí seznam všech účtů služby Azure Cosmos DB ve skupině prostředků.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Získání vlastností účtu služby Azure Cosmos DB
Tento příkaz umožňuje získat vlastnosti existujícího účtu služby Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Aktualizace účtu služby Azure Cosmos DB
Tento příkaz umožňuje aktualizovat vlastnosti účtu databáze Azure Cosmos DB. Mezi vlastnosti, které lze aktualizovat, patří:
- Přidání nebo odebrání oblastí
- Změna výchozích zásad konzistence
- Změna filtru rozsahu IP adres
- Změna konfigurací virtuální sítě
- Povolení zápisů do více oblastí
Poznámka:
Oblasti nemůžete přidávat ani odebírat současnělocations
a měnit další vlastnosti účtu služby Azure Cosmos DB. Změny oblastí musí být provedeny jako samostatná operace od jakékoli jiné změny účtu.
Poznámka:
Tento příkaz umožňuje přidávat a odebírat oblasti, ale neumožňuje měnit priority převzetí služeb při selhání nebo aktivovat ruční převzetí služeb při selhání. Viz Úprava priority převzetí služeb při selhání a ruční převzetí služeb při selhání triggeru.
Tip
Když se přidá nová oblast, všechna data se musí zcela replikovat a zapsat do nové oblasti, než se tato oblast označí za dostupnou. Doba trvání této operace bude záviset na tom, kolik dat se v rámci účtu ukládá. Pokud probíhá operace škálování asynchronní propustnosti, operace vertikálního navýšení kapacity propustnosti se pozastaví a po dokončení operace přidání nebo odebrání oblasti se automaticky obnoví.
# 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."
Povolení více oblastí zápisu pro účet služby 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
Odstranění účtu služby Azure Cosmos DB
Tento příkaz odstraní existující účet služby Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Aktualizace značek účtu služby Azure Cosmos DB
Tento příkaz nastaví značky prostředků Azure pro účet služby Azure Cosmos DB. Značky lze nastavit při vytváření účtu pomocí New-AzCosmosDBAccount
i při aktualizaci účtu pomocí Update-AzCosmosDBAccount
.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Povolení převzetí služeb při selhání spravované službou
Následující příkaz nastaví účet služby Azure Cosmos DB tak, aby provedl převzetí služeb při selhání do sekundární oblasti, pokud primární oblast nebude dostupná.
$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
Úprava priority převzetí služeb při selhání
U účtů nakonfigurovaných s podporou převzetí služeb při selhání spravované službou můžete změnit pořadí, ve kterém azure Cosmos DB zvýší úroveň sekundárních replik na primární, pokud primární server nebude dostupný.
V následujícím příkladu předpokládejme, že aktuální priorita převzetí služeb při selhání je West US = 0
, East US = 1
, South Central US = 2
. Příkaz to změní na West US = 0
, South Central US = 1
. East US = 2
Upozornění
Změna umístění failoverPriority=0
aktivuje ruční převzetí služeb při selhání pro účet služby Azure Cosmos DB. Žádné jiné změny priority neaktivují převzetí služeb při selhání.
$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
Aktivace ručního převzetí služeb při selhání
Pro účty nakonfigurované s ručním převzetím služeb při selhání můžete převzít služby při selhání a zvýšit úroveň jakékoli sekundární repliky na primární úpravou na failoverPriority=0
. Tuto operaci lze použít k zahájení postupu zotavení po havárii pro testování plánování zotavení po havárii.
V následujícím příkladu předpokládejme, že účet má aktuální prioritu West US = 0
převzetí služeb při selhání a East US = 1
překlopení oblastí.
Upozornění
Při změně locationName
pro failoverPriority=0
účet služby Azure Cosmos DB se aktivuje ruční převzetí služeb při selhání. Žádná jiná změna priority neaktivuje převzetí služeb při selhání.
Poznámka:
Pokud provádíte ruční operaci převzetí služeb při selhání, zatímco probíhá operace škálování asynchronní propustnosti, operace vertikálního navýšení kapacity propustnosti se pozastaví. Po dokončení operace převzetí služeb při selhání se automaticky obnoví.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Výpis zámků prostředků v účtu služby Azure Cosmos DB
Zámky prostředků se dají umístit do prostředků Azure Cosmos DB, včetně databází a kolekcí. Následující příklad ukazuje, jak zobrazit seznam všech zámků prostředků Azure v účtu služby Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Databáze Azure Cosmos DB
Následující části ukazují, jak spravovat databázi Azure Cosmos DB, včetně:
- Vytvoření databáze Azure Cosmos DB
- Vytvoření databáze Azure Cosmos DB se sdílenou propustností
- Získání propustnosti databáze Azure Cosmos DB
- Migrace propustnosti databáze do automatického škálování
- Výpis všech databází Azure Cosmos DB v účtu
- Získání jedné databáze Azure Cosmos DB
- Odstranění databáze Azure Cosmos DB
- Vytvoření zámku prostředku v databázi Azure Cosmos DB, aby se zabránilo odstranění
- Odebrání zámku prostředku v databázi Azure Cosmos DB
Vytvoření databáze Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Vytvoření databáze Azure Cosmos DB se sdílenou propustností
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Získání propustnosti databáze Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Migrace propustnosti databáze do automatického škálování
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Získání všech databází Azure Cosmos DB v účtu
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Získání jedné databáze Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Odstranění databáze Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Vytvoření zámku prostředku v databázi Azure Cosmos DB, aby se zabránilo odstranění
$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
Odebrání zámku prostředku v databázi 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
Kontejner služby Azure Cosmos DB
Následující části ukazují, jak spravovat kontejner Azure Cosmos DB, včetně:
- Vytvoření kontejneru Azure Cosmos DB
- Vytvoření kontejneru Azure Cosmos DB s automatickým škálováním
- Vytvoření kontejneru Azure Cosmos DB s velkým klíčem oddílu
- Získání propustnosti kontejneru Azure Cosmos DB
- Migrace propustnosti kontejneru do automatického škálování
- Vytvoření kontejneru Azure Cosmos DB s využitím vlastního indexování
- Vytvoření kontejneru Azure Cosmos DB s vypnutým indexováním
- Vytvoření kontejneru Azure Cosmos DB s jedinečným klíčem a TTL
- Vytvoření kontejneru Azure Cosmos DB s řešením konfliktů
- Výpis všech kontejnerů Azure Cosmos DB v databázi
- Získání jednoho kontejneru Azure Cosmos DB v databázi
- Odstranění kontejneru Azure Cosmos DB
- Vytvoření zámku prostředku v kontejneru Azure Cosmos DB, aby se zabránilo odstranění
- Odebrání zámku prostředku v kontejneru Azure Cosmos DB
Vytvoření kontejneru 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
Vytvoření kontejneru Azure Cosmos DB s automatickým škálováním
# 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
Vytvoření kontejneru Azure Cosmos DB s velkou velikostí klíče oddílu
# 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
Získání propustnosti kontejneru Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Migrace propustnosti kontejneru do automatického škálování
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Vytvoření kontejneru Azure Cosmos DB pomocí vlastních zásad indexu
# 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
Vytvoření kontejneru Azure Cosmos DB s vypnutým indexováním
# 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
Vytvoření kontejneru Azure Cosmos DB s jedinečnými zásadami klíče a TTL
# 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
Vytvoření kontejneru Azure Cosmos DB s řešením konfliktů
Chcete-li zapsat všechny konflikty do ConflictsFeed a zpracovat samostatně, předejte -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
Chcete-li vytvořit zásadu řešení konfliktů pro použití uložené procedury, volání New-AzCosmosDBSqlConflictResolutionPolicy
a předání parametrů -Type
a -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
Výpis všech kontejnerů Azure Cosmos DB v databázi
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Získání jednoho kontejneru Azure Cosmos DB v databázi
# 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
Odstranění kontejneru 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
Vytvoření zámku prostředku v kontejneru Azure Cosmos DB, aby se zabránilo odstranění
$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
Odebrání zámku prostředku v kontejneru 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