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.AzAz.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

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 s FailoverPriority 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, $maxStalenessIntervala $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

Výpis klíčů účtu

Když vytvoříte účet služby Azure Cosmos DB, služba vygeneruje dva primární přístupové klíče, které se dají použít k ověřování při přístupu k účtu služby Azure Cosmos DB. Vygenerují se také klíče jen pro čtení pro ověřování operací jen pro čtení. Díky poskytnutí dvou přístupových klíčů vám Azure Cosmos DB umožňuje znovu vygenerovat a otočit jeden klíč najednou bez přerušení účtu služby Azure Cosmos DB. Účty Azure Cosmos DB mají dva klíče pro čtení i zápis (primární a sekundární) a dva klíče jen pro čtení (primární a sekundární).

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Get-AzCosmosDBAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -Type "Keys"

Seznam Připojení řetězců

Následující příkaz načte připojovací řetězec pro připojení aplikací k účtu služby Azure Cosmos DB.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"

Get-AzCosmosDBAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -Type "ConnectionStrings"

Opětovné generování klíčů účtu

Přístupové klíče k účtu služby Azure Cosmos DB by se měly pravidelně generovat, aby byla připojení zabezpečená. K účtu se přiřazují primární a sekundární přístupové klíče. To umožňuje klientům udržovat přístup, zatímco se vygeneruje vždy jeden klíč. Pro účet služby Azure Cosmos DB (primární, sekundární, primaryreadonly a SecondaryReadonly) existují čtyři typy klíčů.

$resourceGroupName = "myResourceGroup" # Resource Group must already exist
$accountName = "mycosmosaccount" # Must be all lower case
$keyKind = "primary" # Other key kinds: secondary, primaryReadonly, secondaryReadonly

New-AzCosmosDBAccountKey `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -KeyKind $keyKind

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

$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

# 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

Další kroky