Azure Cosmos DB for NoSQL-resources beheren met behulp van PowerShell

VAN TOEPASSING OP: NoSQL

In de volgende handleiding wordt beschreven hoe u PowerShell gebruikt om het beheer van Azure Cosmos DB for NoSQL-resources te scripten en automatiseren, waaronder het Azure Cosmos DB-account, de database, de container en de doorvoer. Voor PowerShell-cmdlets voor andere API's raadpleegt u PowerShell-voorbeelden voor Cassandra, PowerShell-voorbeelden voor API voor MongoDB, PowerShell-voorbeelden voor Gremlin, PowerShell-voorbeelden voor Table

Notitie

De voorbeelden in dit artikel maken gebruik van beheer-cmdlets voor AZ. CosmosDB. Zie de referentiepagina van Az.CosmosDB API voor de nieuwste wijzigingen.

Voor platformoverschrijdend beheer van Azure Cosmos DB kunt u de cmdlets Az en Az.CosmosDB gebruiken met platformoverschrijdend PowerShell en ook Azure CLI, de REST API of de Azure Portal.

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

Aan de slag

Volg de instructies in Azure PowerShell installeren en configureren om uw Azure-account in PowerShell te installeren en u aan te melden.

Belangrijk

De naam van Azure Cosmos DB-resources kan niet worden gewijzigd, omdat dit in strijd is met de werking van Azure Resource Manager met resource-URI's.

Azure Cosmos DB-accounts

In de volgende secties ziet u hoe u het Azure Cosmos DB-account beheert, waaronder:

Een Azure Cosmos DB-account maken

Met deze opdracht maakt u een Azure Cosmos DB-databaseaccount met meerdere regio's, door de service beheerde failover en het consistentiebeleid voor gebonden veroudering.

$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 De Azure-resourcegroep waarin het Azure Cosmos DB-account moet worden geïmplementeerd. Deze moet al bestaan.
  • $locations De regio's voor het databaseaccount, de regio met FailoverPriority 0 is de schrijfregio.
  • $accountName De naam voor het Azure Cosmos DB-account. Moet uniek zijn, met kleine letters, mag alleen alfanumerieke tekens en '-'-tekens bevatten en moet tussen 3 en 31 tekens lang zijn.
  • $apiKind Het type Azure Cosmos DB-account dat moet worden gemaakt. Zie API's in Azure Cosmos DB voor meer informatie.
  • $consistencyPolicy, $maxStalenessIntervalen $maxStalenessPrefix het standaardconsistentieniveau en de standaardinstellingen van het Azure Cosmos DB-account. Zie de Consistentieniveaus in Azure Cosmos DB voor meer informatie.

Azure Cosmos DB-accounts kunnen worden geconfigureerd met IP-firewall, service-eindpunten voor virtueel netwerk en privé-eindpunten. Zie IP-firewall configureren voor meer informatie over het configureren van de IP-firewall voor Azure Cosmos DB. Zie Toegang vanuit virtuele netwerken configureren voor meer informatie over het inschakelen van service-eindpunten voor Azure Cosmos DB. Zie Toegang vanuit privé-eindpunten configureren voor meer informatie over het inschakelen van privé-eindpunten voor Azure Cosmos DB.

Alle Azure Cosmos DB-accounts in een resourcegroep weergeven

Met deze opdracht worden alle Azure Cosmos DB-accounts in een resourcegroep weergegeven.

$resourceGroupName = "myResourceGroup"

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName

De eigenschappen van een Azure Cosmos DB-account ophalen

Met deze opdracht kunt u de eigenschappen van een bestaand Azure Cosmos DB-account ophalen.

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

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName

Een Azure Cosmos DB-account bijwerken

Met deze opdracht kunt u de eigenschappen van uw Azure Cosmos DB-databaseaccount bijwerken. Eigenschappen die kunnen worden bijgewerkt zijn onder meer:

  • Regio's toevoegen of verwijderen
  • Standaardconsistentiebeleid wijzigen
  • IP-bereikfilter wijzigen
  • Configuraties van virtuele netwerken wijzigen
  • Schrijfbewerkingen in meerdere regio's inschakelen

Notitie

U kunt geen regio's tegelijk toevoegen of verwijderen (locations) en andere eigenschappen voor een Azure Cosmos DB-account wijzigen. Het wijzigen van regio's moet afzonderlijk worden uitgevoerd van andere wijzigingen aan het account.

Notitie

Met deze opdracht kunt u regio's toevoegen en verwijderen, maar niet de failover-prioriteit wijzigen of een handmatige failover activeren. Zie Failover-prioriteit wijzigen en Handmatige failover activeren.

Fooi

Wanneer een nieuwe regio wordt toegevoegd, moeten alle gegevens volledig worden gerepliceerd en in de nieuwe regio worden vastgelegd voordat de regio als beschikbaar wordt gemarkeerd. De hoeveelheid tijd die deze bewerking kost, is afhankelijk van hoeveel gegevens in het account worden opgeslagen. Als er een asynchrone doorvoerschaalbewerking wordt uitgevoerd, wordt de bewerking voor het omhoog schalen van doorvoer onderbroken en wordt deze automatisch hervat wanneer de regiobewerking voor toevoegen/verwijderen is voltooid.

# 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."

Meerdere schrijfregio's inschakelen voor een Azure Cosmos DB-account

$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

Een Azure Cosmos DB-account verwijderen

Met deze opdracht wordt een bestaand Azure Cosmos DB-account verwijderd.

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

Remove-AzCosmosDBAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -PassThru:$true

Tags van een Azure Cosmos DB-account bijwerken

Met deze opdracht worden de Azure-resourcetags ingesteld voor een Azure Cosmos DB-account. Tags kunnen zowel worden ingesteld bij het maken van het account met New-AzCosmosDBAccount als bij het bijwerken van een account met Update-AzCosmosDBAccount.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}

Update-AzCosmosDBAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -Tag $tags

Accountsleutels vermelden

Wanneer u een Azure Cosmos DB-account maakt, genereert de service twee primaire toegangssleutels die kunnen worden gebruikt voor verificatie wanneer het Azure Cosmos DB-account wordt geopend. Ook worden er alleen-lezensleutels voor verificatie van alleen-lezenbewerkingen gegenereerd. Door twee toegangssleutels op te geven, kunt u met Azure Cosmos DB één sleutel tegelijk opnieuw genereren en roteren zonder onderbreking van uw Azure Cosmos DB-account. Azure Cosmos DB-accounts hebben twee lees-/schrijfsleutels (primaire en secundaire) en twee alleen-lezen sleutels (primaire en secundaire).

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

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

Lijst Verbinding maken iontekenreeksen

Met de volgende opdracht worden verbindingsreeks s opgehaald om apps te verbinden met het Azure Cosmos DB-account.

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

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

Accountsleutels opnieuw genereren

Toegangssleutels voor een Azure Cosmos DB-account moeten periodiek opnieuw worden gegenereerd om verbindingen veilig te houden. Er wordt een primaire en secundaire toegangssleutel toegewezen aan het account. Hierdoor kunnen clients toegang houden terwijl één sleutel per keer wordt geregenereerd. Er zijn vier typen sleutels voor een Azure Cosmos DB-account (primair, secundair, PrimaryReadonly en SecondaryReadonly)

$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

Door de service beheerde failover inschakelen

Met de volgende opdracht stelt u een Azure Cosmos DB-account in om een door de service beheerde failover uit te voeren naar de secundaire regio als de primaire regio niet beschikbaar is.

$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

Failoverprioriteit wijzigen

Voor accounts die zijn geconfigureerd met door de service beheerde failover, kunt u de volgorde wijzigen waarin Azure Cosmos DB secundaire replica's naar primair promoveert als de primaire niet meer beschikbaar is.

In het onderstaande voorbeeld wordt ervan uitgegaan dat de huidige failover-prioriteit West US = 0, East US = 1, South Central US = 2 is. Met deze opdracht wordt dat gewijzigd in West US = 0, South Central US = 1, East US = 2.

Let op

Als u de locatie wijzigt failoverPriority=0 , wordt een handmatige failover voor een Azure Cosmos DB-account geactiveerd. Andere wijzigingen van de prioriteit zullen geen failover activeren.

$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

Handmatige failover activeren

Voor accounts die zijn geconfigureerd met Handmatige failover kunt u failover uitvoeren en elke secundaire replica promoveren naar primaire door deze te wijzigen in failoverPriority=0. Deze opdracht kan worden gebruikt om een uitwijktest te activeren om de uitwijkplanning te testen.

In het voorbeeld hieronder wordt ervan uitgegaan dat het account een huidige failover-prioriteit van West US = 0 en East US = 1 heeft en de regio's spiegelt.

Let op

failoverPriority=0 Als u dit wijzigtlocationName, wordt een handmatige failover voor een Azure Cosmos DB-account geactiveerd. Een andere wijziging van de prioriteit zal geen failover activeren.

Notitie

Als u een handmatige failoverbewerking uitvoert terwijl een asynchrone doorvoerschaalbewerking wordt uitgevoerd, wordt de bewerking voor het omhoog schalen van doorvoer onderbroken. Deze wordt automatisch hervat wanneer de failoverbewerking is voltooid.

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority

Update-AzCosmosDBAccountFailoverPriority `
    -ResourceGroupName $resourceGroupName `
    -Name $accountName `
    -FailoverPolicy $locations

Resourcevergrendelingen op een Azure Cosmos DB-account weergeven

Resourcevergrendelingen kunnen worden geplaatst op Azure Cosmos DB-resources, met inbegrip van databases en verzamelingen. In het volgende voorbeeld ziet u hoe u alle Azure-resourcevergrendelingen op een Azure Cosmos DB-account kunt weergeven.

$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"

Get-AzResourceLock `
    -ResourceGroupName $resourceGroupName `
    -ResourceType $resourceTypeAccount `
    -ResourceName $accountName

Azure Cosmos DB-database

In de volgende secties ziet u hoe u de Azure Cosmos DB-database kunt beheren, met inbegrip van:

Een Azure Cosmos DB-database maken

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

New-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Een Azure Cosmos DB-database met gedeelde doorvoer maken

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400

New-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName `
    -Throughput $databaseRUs

De doorvoer van een Azure Cosmos DB-database ophalen

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Get-AzCosmosDBSqlDatabaseThroughput `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Databasedoorvoer migreren naar automatische schaalaanpassing

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName `
    -ThroughputType Autoscale

Alle Azure Cosmos DB-databases in een account ophalen

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

Get-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName

Eén Azure Cosmos DB-database ophalen

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Get-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Een Azure Cosmos DB-database verwijderen

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Remove-AzCosmosDBSqlDatabase `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -Name $databaseName

Een resourcevergrendeling op een Azure Cosmos DB-database maken om te voorkomen dat deze wordt verwijderd

$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

Een resourcevergrendeling op een Azure Cosmos DB-database verwijderen

$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-container

In de volgende secties ziet u hoe u de Azure Cosmos DB-container kunt beheren, met inbegrip van:

Een Azure Cosmos DB-container maken

# 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

Een Azure Cosmos DB-container met automatisch schaalaanpassing maken

# 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

Een Azure Cosmos DB-container met een grote partitiesleutelgrootte maken

# 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

De doorvoer van een Azure Cosmos DB-container ophalen

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"

Get-AzCosmosDBSqlContainerThroughput `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName `
    -Name $containerName

Containerdoorvoer migreren naar automatische schaalaanpassing

$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"

Invoke-AzCosmosDBSqlContainerThroughputMigration `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName `
    -Name $containerName `
    -ThroughputType Autoscale

Een Azure Cosmos DB-container met aangepast indexeringsbeleid maken

# 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

Een Azure Cosmos DB-container met uitgeschakelde indexering maken

# 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

Een Azure Cosmos DB-container met uniek sleutelbeleid en TTL maken

# 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

Een Azure Cosmos DB-container met conflictoplossing maken

Geef -Type "Custom" -Path "" door om alle conflicten naar de ConflictsFeed te schrijven en ze afzonderlijk te behandelen.

# 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

Roep New-AzCosmosDBSqlConflictResolutionPolicy aan en geef de parameters -Type en -ConflictResolutionProcedure door om conflictoplossingsbeleid te maken om een opgeslagen procedure te gebruiken.

# 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

Alle Azure Cosmos DB-containers in een database weergeven

# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"

Get-AzCosmosDBSqlContainer `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName

Eén Azure Cosmos DB-container in een database ophalen

# 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

Een Azure Cosmos DB-container verwijderen

# Delete an Azure Cosmos DB container
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"

Remove-AzCosmosDBSqlContainer `
    -ResourceGroupName $resourceGroupName `
    -AccountName $accountName `
    -DatabaseName $databaseName `
    -Name $containerName

Een resourcevergrendeling op een Azure Cosmos DB-container maken om te voorkomen dat deze wordt verwijderd

$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

Een resourcevergrendeling op een Azure Cosmos DB-container verwijderen

$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

Volgende stappen