Freigeben über


Verwalten von Azure Cosmos DB für NoSQL-Ressourcen mithilfe von PowerShell

Das folgende Handbuch beschreibt, wie Sie PowerShell zum Skripten und Automatisieren der Verwaltung von Azure Cosmos DB für NoSQL-Ressourcen verwenden, einschließlich des Azure Cosmos DB-Kontos, der Datenbank, des Containers und des Durchsatzes. PowerShell-Cmdlets für andere APIs finden Sie unter PowerShell Samples for Cassandra, PowerShell Samples for API for MongoDB, PowerShell Samples for Gremlin, PowerShell Samples for Table

Hinweis

Beispiele in diesem Artikel verwenden Az.CosmosDB-Verwaltungs-Cmdlets . Die neuesten Änderungen finden Sie auf der Az.CosmosDB-API-Referenzseite .

Für die plattformübergreifende Verwaltung von Azure Cosmos DB können Sie die Az und Az.CosmosDB Cmdlets mit plattformübergreifender PowerShell und der Azure CLI, der REST-API oder dem Azure-Portal verwenden.

Hinweis

Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren von Azure PowerShell. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.

Erste Schritte

Befolgen Sie die Anweisungen in Installieren und Konfigurieren von Azure PowerShell, um PowerShell zu installieren und sich bei Ihrem Azure-Konto anzumelden.

Von Bedeutung

Azure Cosmos DB-Ressourcen können nicht umbenannt werden, da dies gegen die Funktionsweise von Azure Resource Manager mit Ressourcen-URIs verstößt.

Azure Cosmos DB-Konten

In den folgenden Abschnitten erfahren Sie, wie Sie Azure Cosmos DB-Konten verwalten. Dabei lernen Sie u. a. Folgendes:

Erstellen eines Azure Cosmos DB-Kontos

Dieser Befehl erstellt ein Azure Cosmos DB-Datenbankkonto mit mehreren Regionen, dienstgesteuertem Failover und einer Konsistenzrichtlinie für begrenzte Stale-Time.

$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 Die Azure-Ressourcengruppe, in der das Azure Cosmos DB-Konto bereitgestellt werden soll. Es muss bereits vorhanden sein.
  • $locations Die Regionen für das Datenbankkonto und die Region mit FailoverPriority 0 ist die Schreibregion.
  • $accountName Der Name für das Azure Cosmos DB-Konto. Muss eindeutig, klein geschrieben sein, nur alphanumerische und '-' Zeichen enthalten, und zwischen 3 und 31 Zeichen lang sein.
  • $apiKind Der Typ des zu erstellenden Azure Cosmos DB-Kontos. Weitere Informationen finden Sie unter APIs in Azure Cosmos DB.
  • $consistencyPolicy, $maxStalenessIntervalund $maxStalenessPrefix die Standardkonsistenzstufe und -einstellungen des Azure Cosmos DB-Kontos. Weitere Informationen finden Sie unter Konsistenzstufen in Azure Cosmos DB.

Azure Cosmos DB-Konten können mit IP-Firewall, Virtual Network-Dienstendpunkten und privaten Endpunkten konfiguriert werden. Informationen zum Konfigurieren der IP-Firewall für Azure Cosmos DB finden Sie unter Konfigurieren der IP-Firewall. Informationen zum Aktivieren von Dienstendpunkten für Azure Cosmos DB finden Sie unter Konfigurieren des Zugriffs über virtuelle Netzwerke. Informationen zum Aktivieren privater Endpunkte für Azure Cosmos DB finden Sie unter Konfigurieren des Zugriffs von privaten Endpunkten.

Auflisten aller Azure Cosmos DB-Konten in einer Ressourcengruppe

Dieser Befehl listet alle Azure Cosmos DB-Konten in einer Ressourcengruppe auf.

$resourceGroupName = "myResourceGroup"

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName

Abrufen der Eigenschaften eines Azure Cosmos DB-Kontos

Mit diesem Befehl können Sie die Eigenschaften eines vorhandenen Azure Cosmos DB-Kontos abrufen.

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

Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName

Aktualisieren eines Azure Cosmos DB-Kontos

Mit diesem Befehl können Sie Ihre Azure Cosmos DB-Datenbankkontoeigenschaften aktualisieren. Eigenschaften, die aktualisiert werden können, umfassen Folgendes:

  • Hinzufügen oder Entfernen von Regionen
  • Ändern der Standardkonsistenzrichtlinie
  • Ändern des IP-Bereichsfilters
  • Ändern von Konfigurationen für virtuelle Netzwerke
  • Aktivieren von Schreibvorgängen mit mehreren Regionen

Hinweis

Sie können Regionen (locations) nicht gleichzeitig hinzufügen oder entfernen und andere Eigenschaften eines Azure Cosmos DB-Kontos ändern. Das Ändern von Regionen muss als separater Vorgang von jeder anderen Änderung des Kontos ausgeführt werden.

Hinweis

Mit diesem Befehl können Sie Regionen hinzufügen und entfernen, aber weder Failoverprioritäten anpassen noch ein manuelles Failover auslösen. Siehe "Failoverpriorität ändern " und "Manuelles Failover auslösen".

Tipp

Wenn eine neue Region hinzugefügt wird, müssen alle Daten vollständig repliziert und in die neue Region committet werden, bevor die Region als verfügbar markiert wird. Wie lange dieser Vorgang dauert, hängt davon ab, wie viele Daten in dem Konto gespeichert werden. Wenn ein asynchroner Durchsatzskalierungsvorgang ausgeführt wird, wird der Vorgang zum horizontalen Hochskalieren des Durchsatzes angehalten und automatisch fortgesetzt, sobald der Vorgang zum Hinzufügen/Entfernen von Regionen abgeschlossen ist.

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

Aktivieren mehrerer Schreibbereiche für ein Azure Cosmos DB-Konto

$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

Löschen eines Azure Cosmos DB-Kontos

Mit diesem Befehl wird ein vorhandenes Azure Cosmos DB-Konto gelöscht.

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

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

Aktualisieren von Tags eines Azure Cosmos DB-Kontos

Mit diesem Befehl werden die Azure-Ressourcentags für ein Azure Cosmos DB-Konto festgelegt. Tags können sowohl bei der Kontoerstellung mithilfe von New-AzCosmosDBAccount als auch bei der Kontoaktualisierung mithilfe von Update-AzCosmosDBAccount festgelegt werden.

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

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

Aktivierung des vom Dienst verwalteten Failovers

Mit dem folgenden Befehl wird ein Azure Cosmos DB-Konto so festgelegt, dass ein dienstverwalteter Failover für seine sekundäre Region ausgeführt wird, wenn die primäre Region nicht mehr verfügbar ist.

$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

Failoverpriorität ändern

Für Konten, die mit Service-Managed Failover konfiguriert sind, können Sie die Reihenfolge ändern, in der Azure Cosmos DB sekundäre Replikate als primäre höherstufen soll, wenn die primäre nicht verfügbar ist.

Gehen Sie für das folgende Beispiel davon aus, dass die aktuelle Failoverpriorität West US = 0, East US = 1, South Central US = 2. Der Befehl ändert dies in West US = 0, South Central US = 1, East US = 2.

Vorsicht

Durch das Ändern des Speicherorts von failoverPriority=0 wird ein manuelles Failover für ein Azure Cosmos DB-Konto ausgelöst. Alle anderen Prioritätsänderungen lösen kein Failover aus.

$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

Manuelles Failover initiieren

Für Konten, die mit manuellem Failover konfiguriert sind, können Sie durch Ändern failoverPriority=0 jedes sekundäre Replikat in ein primäres hochstufen. Dieser Vorgang kann verwendet werden, um eine Übung zur Notfallwiederherstellung zu initiieren, um die Notfallwiederherstellungsplanung zu testen.

Gehen Sie im folgenden Beispiel davon aus, dass das Konto über eine aktuelle Failover-Priorität von verfügt und die Regionen von vertauscht werden.

Vorsicht

Das Ändern von locationName in failoverPriority=0 löst ein manuelles Failover für ein Azure Cosmos DB-Konto aus. Bei anderen Prioritätsänderungen wird kein Failover ausgelöst.

Hinweis

Wenn Sie einen manuellen Failovervorgang ausführen, während ein asynchroner Durchsatzskalierungsvorgang aktiv ist, wird der Vorgang zum horizontalen Hochskalieren des Durchsatzes angehalten. Er wird automatisch fortgesetzt, sobald der Failovervorgang abgeschlossen ist.

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

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

Auflisten von Ressourcensperren für ein Azure Cosmos DB-Konto

Ressourcensperren können auf Azure Cosmos DB-Ressourcen einschließlich Datenbanken und Sammlungen platziert werden. Das folgende Beispiel zeigt, wie alle Azure-Ressourcensperren in einem Azure Cosmos DB-Konto aufgeführt werden.

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

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

Azure Cosmos DB-Datenbank

In den folgenden Abschnitten erfahren Sie, wie Sie Azure Cosmos DB-Datenbanken verwalten. Dabei lernen Sie u. a. Folgendes:

Erstellen einer Azure Cosmos DB-Datenbank

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

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

Erstellen einer Azure Cosmos DB-Datenbank mit freigegebenem Durchsatz

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

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

Abrufen des Durchsatzes einer Azure Cosmos DB-Datenbank

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

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

Migrieren Sie den Datenbankdurchsatz auf automatische Skalierung

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

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

Abrufen aller Azure Cosmos DB-Datenbanken in einem Konto

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

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

Eine einzelne Azure Cosmos DB-Datenbank abrufen

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

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

Löschen einer Azure Cosmos DB-Datenbank

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

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

Erstellen einer Ressourcensperre in einer Azure Cosmos DB-Datenbank, um das Löschen zu verhindern

$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

Entfernen einer Ressourcensperre in einer Azure Cosmos DB-Datenbank

$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 den folgenden Abschnitten erfahren Sie, wie Sie Azure Cosmos DB-Container verwalten. Dabei lernen Sie u. a. Folgendes:

Erstellen eines Azure Cosmos DB-Containers

# 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

Erstellen eines Azure Cosmos DB-Containers mit Autoscale

# 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

Erstellen eines Azure Cosmos DB-Containers mit einer großen Partitionsschlüsselgröße

# 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

Abrufen des Durchsatzes eines Azure Cosmos DB-Containers

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

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

Migrieren des Containerdurchsatzes zur automatischen Skalierung

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

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

Erstellen eines Azure Cosmos DB-Containers mit benutzerdefinierter Indexrichtlinie

# 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

Erstellen eines Azure Cosmos DB-Containers mit deaktivierter Indizierung

# 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

Erstellen eines Azure Cosmos DB-Containers mit eindeutiger Schlüsselrichtlinie und 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

Erstellen eines Azure Cosmos DB-Containers mit Konfliktauflösung

Um alle Konflikte in den ConflictsFeed zu schreiben und separat zu behandeln, übergeben Sie -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

Um eine Konfliktlösungsrichtlinie für die Verwendung einer gespeicherten Prozedur zu erstellen, rufen Sie New-AzCosmosDBSqlConflictResolutionPolicy auf und übergeben Sie die Parameter -Type und -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

Auflisten aller Azure Cosmos DB-Container in einer Datenbank

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

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

Abrufen Sie einen einzelnen Container in einer Azure Cosmos DB-Datenbank.

# 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

Löschen eines Azure Cosmos DB-Containers

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

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

Erstellen einer Ressourcensperre für einen Azure Cosmos DB-Container, um das Löschen zu verhindern

$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

Entfernen einer Ressourcensperre für einen Azure Cosmos DB-Container

$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

Nächste Schritte