Verwalten von Azure Cosmos DB for NoSQL-Ressourcen mithilfe von PowerShell
GILT FÜR: NoSQL
In der folgenden Anleitung erfahren Sie, wie Sie PowerShell-Skripts verwenden, um die Verwaltung von Azure Cosmos DB for NoSQL-Ressourcen zu automatisieren, einschließlich des Azure Cosmos DB-Kontos, Datenbank, Container und Durchsatz. Informationen zu PowerShell-Cmdlets für andere APIs finden Sie unter PowerShell-Beispiele für Cassandra, PowerShell-Beispiele für MongoDB, PowerShell-Beispiele für Gremlin-API und PowerShell-Beispiele für Tabellen.
Hinweis
In den Beispielen in diesem Artikel werden die Az.CosmosDB-Verwaltungs-Cmdlets verwendet. Informationen zu den letzten Änderungen finden Sie auf der Referenzseite zur Az.CosmosDB-API.
Zur plattformübergreifenden Verwaltung von Azure Cosmos DB können Sie die Cmdlets Az
und Az.CosmosDB
mit PowerShell (plattformübergreifend) und die Azure CLI, die REST-API oder das 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
Führen Sie die Schritte unter Installieren und Konfigurieren von Azure PowerShell aus, um PowerShell zu installieren und sich bei Ihrem Azure-Konto anzumelden.
Wichtig
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
- Aktualisieren eines Azure Cosmos DB-Kontos
- Auflisten aller Azure Cosmos DB-Konten in einem Abonnement
- Erwerben eines Azure Cosmos DB-Kontos
- Löschen eines Azure Cosmos DB-Kontos
- Aktualisieren der Tags eines Azure Cosmos DB-Kontos
- Ändern der Failoverpriorität für ein Azure Cosmos DB-Konto
- Auslösen eines manuellen Failovers für ein Azure Cosmos DB-Konto
- Auflisten von Ressourcensperren in einem Azure Cosmos DB-Konto
Erstellen eines Azure Cosmos DB-Kontos
Mit diesem Befehl wird ein Azure Cosmos DB-Datenbankkonto mit mehreren Regionen, dienstseitig verwaltetem Failover und einer Konsistenzrichtlinie mit begrenzter Veraltung erstellt.
$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. Die Region mitFailoverPriority 0
ist die Schreibregion.$accountName
: Der Name des Azure Cosmos DB-Kontos. Der Name muss eindeutig sein, darf nur alphanumerische Kleinbuchstaben bzw. Zeichen und den Bindestrich enthalten und muss eine Länge von 3 bis 31 Zeichen haben.$apiKind
: Der Typ des zu erstellenden Azure Cosmos DB-Kontos. Weitere Informationen finden Sie unter APIs in Azure Cosmos DB.$consistencyPolicy
,$maxStalenessInterval
und$maxStalenessPrefix
: Die Standardkonsistenzebene und die Einstellungen des Azure Cosmos DB-Kontos. Weitere Informationen finden Sie unter Konsistenzebenen in Azure Cosmos DB.
Für Azure Cosmos DB-Konten können eine IP-Firewall, VNET-Dienstendpunkte und private Endpunkte 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 von privaten Endpunkten für Azure Cosmos DB finden Sie unter Konfigurieren des Zugriffs über private Endpunkte.
Auflisten aller Azure Cosmos DB-Konten in einer Ressourcengruppe
Mit diesem Befehl werden alle Azure Cosmos DB-Konten in einer Ressourcengruppe aufgelistet.
$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 die Eigenschaften Ihres Azure Cosmos DB-Datenbankkontos aktualisieren. Die Eigenschaften für folgende Aufgaben können aktualisiert werden:
- Hinzufügen oder Entfernen von Regionen
- Anpassen der Standardkonsistenzrichtlinie
- Anpassen des IP-Bereichsfilters
- Anpassen von Konfigurationen für das virtuelle Netzwerk
- Aktivieren von Schreibvorgängen in mehreren Regionen
Hinweis
Sie können nicht gleichzeitig Regionen (locations
) hinzufügen oder entfernen und andere Eigenschaften für ein Azure Cosmos DB-Konto ändern. Die Anpassung von Regionen muss getrennt von anderen Änderungen des Kontos vorgenommen werden.
Hinweis
Mit diesem Befehl können Sie Regionen hinzufügen und entfernen, aber weder Failoverprioritäten anpassen noch ein manuelles Failover auslösen. Weitere Informationen finden Sie unter Anpassen der Failoverpriorität für ein Azure Cosmos DB-Konto und Auslösen eines manuellen Failovers.
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 Schreibregionen 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 der 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 (mit New-AzCosmosDBAccount
) als auch bei der Kontoaktualisierung (mit Update-AzCosmosDBAccount
) festgelegt werden.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Aktivieren des dienstseitig verwalteten Failovers
Mit dem folgenden Befehl wird für ein Azure Cosmos DB-Konto festgelegt, dass automatisch ein dienstverwaltetes Failover zur sekundären Region ausgeführt wird, falls die primäre Region nicht 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
Anpassen der Failoverpriorität für ein Azure Cosmos DB-Konto
Bei Konten, für die dienstseitig verwaltetes Failover konfiguriert ist, können Sie die Reihenfolge ändern, in der Azure Cosmos DB sekundäre Replikate auf primäre Replikate höher stuft, sollten die primären Replikate nicht mehr verfügbar sein.
Im folgenden Beispiel wird von der folgenden aktuellen Failoverpriorität ausgegangen: West US = 0
, East US = 1
, South Central US = 2
. Mit dem Befehl wird dies wie folgt geändert: West US = 0
, South Central US = 1
, East US = 2
.
Achtung
Durch die Änderung des Standorts für failoverPriority=0
wird ein manuelles Failover für ein Azure Cosmos DB-Konto ausgelöst. Bei anderen Prioritätsänderungen wird kein Failover ausgelöst.
$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
Auslösen eines manuellen Failovers
Bei Konten, für die manuelles Failover konfiguriert ist, können Sie ein Failover ausführen und sekundäre Replikate auf primäre Replikate höher stufen, indem Sie failoverPriority=0
festlegen. Mit diesem Vorgang kann ein Notfallwiederherstellungsverfahren initiiert werden, um die Planung für die Notfallwiederherstellung zu testen.
Gehen Sie im folgenden Beispiel davon aus, dass für das Konto aktuell die Failoverprioritäten West US = 0
und East US = 1
festgelegt sind und die Regionen vertauscht werden.
Achtung
Wenn locationName
in failoverPriority=0
geändert wird, wird ein manuelles Failover für ein Azure Cosmos DB-Konto ausgelöst. 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 in einem Azure Cosmos DB-Konto
Ressourcensperren können für Azure Cosmos DB-Ressourcen, einschließlich Datenbanken und Sammlungen, eingerichtet werden. Das folgende Beispiel zeigt, wie Sie alle Azure-Ressourcensperren in einem Azure Cosmos DB-Konto auflisten.
$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
- Erstellen einer Azure Cosmos DB-Datenbank mit gemeinsam genutztem Durchsatz
- Abrufen des Durchsatzes einer Azure Cosmos DB-Datenbank
- Migrieren eines Datenbankdurchsatzes zur Autoskalierung
- Auflisten aller Azure Cosmos DB-Datenbanken eines Kontos
- Abrufen einer einzelnen Azure Cosmos DB-Datenbank
- Löschen einer Azure Cosmos DB-Datenbank
- Einrichten einer Ressourcensperre für eine Azure Cosmos DB-Datenbank, um das Löschen zu verhindern
- Entfernen einer Ressourcensperre von einer Azure Cosmos DB-Datenbank
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 gemeinsam genutztem 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 eines Datenbankdurchsatzes zur Autoskalierung
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Abrufen aller Azure Cosmos DB-Datenbanken eines Kontos
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Abrufen einer einzelnen Azure Cosmos DB-Datenbank
$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
Einrichten einer Ressourcensperre für eine 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 von 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
- Erstellen eines Azure Cosmos DB-Containers mit automatischer Skalierung
- Erstellen eines Azure Cosmos DB-Containers mit einem großen Partitionsschlüssel
- Abrufen des Durchsatzes eines Azure Cosmos DB-Containers
- Migrieren eines Containerdurchsatzes zur Autoskalierung
- Erstellen eines Azure Cosmos DB-Containers mit benutzerdefinierter Indizierung
- Erstellen eines Azure Cosmos DB-Containers mit deaktivierter Indizierung
- Erstellen eines Azure Cosmos DB-Containers mit einem eindeutigen Schlüssel und einer Gültigkeitsdauer
- Erstellen eines Azure Cosmos DB-Containers mit Konfliktauflösung
- Auflisten aller Azure Cosmos DB-Container einer Datenbank
- Abrufen eines einzelnen Azure Cosmos DB-Containers einer Datenbank
- Löschen eines Azure Cosmos DB-Containers
- Einrichten einer Ressourcensperre für einen Azure Cosmos DB-Container, um das Löschen zu verhindern
- Entfernen einer Ressourcensperre von einem Azure Cosmos DB-Container
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 automatischer Skalierung
# 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 einem großen Partitionsschlüssel
# 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 eines Containerdurchsatzes zur Autoskalierung
$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 Indizierungsrichtlinie
# 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 einer Richtlinie für einen eindeutigen Schlüssel und mit einer Gültigkeitsdauer
# 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
Übergeben Sie -Type "Custom" -Path ""
, um alle Konflikte in „ConflictsFeed“ zu schreiben und diese getrennt zu behandeln.
# 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
Wenn Sie eine Richtlinie zur Konfliktlösung für die Verwendung einer gespeicherten Prozedur erstellen möchten, 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 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 eines einzelnen Azure Cosmos DB-Containers einer 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
Einrichten 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 von einem 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