Gérer les ressources Azure Cosmos DB for NoSQL à l’aide de PowerShell
S’APPLIQUE À : NoSQL
Le guide suivant décrit comment utiliser PowerShell pour générer des scripts et automatiser la gestion des ressources Azure Cosmos DB for NoSQL, notamment les comptes, les bases de données, les conteneurs et les débits Azure Cosmos DB. Pour obtenir des applets de commande PowerShell pour d’autres API, consultez les pages Exemples PowerShell pour Cassandra, Exemples PowerShell destinés à l’API pour MongoDB, Exemples PowerShell pour Gremlin, Exemples PowerShell pour Table
Notes
Les exemples de cet article utilisent les applets de commande de gestion Az.CosmosDB. Consultez la page de référence de l’API Az.CosmosDB pour prendre connaissance des dernières modifications.
Pour une gestion multiplateforme d’Azure Cosmos DB, vous pouvez utiliser les applets de commande Az
et Az.CosmosDB
avec PowerShell multiplateforme ainsi que l’interface Azure CLI, l’API REST ou le portail Azure.
Notes
Nous vous recommandons d’utiliser le module Azure Az PowerShell pour interagir avec Azure. Pour bien démarrer, consultez Installer Azure PowerShell. Pour savoir comment migrer vers le module Az PowerShell, consultez Migrer Azure PowerShell depuis AzureRM vers Az.
Mise en route
Suivez les instructions indiquées dans Guide pratique pour installer et configurer Azure PowerShell pour installer votre compte Azure dans PowerShell et vous y connecter.
Important
Les ressources Azure Cosmos DB ne peuvent pas être renommées, car cela enfreint les règles de traitement des URI de ressources par Azure Resource Manager.
Comptes Azure Cosmos DB
Les sections suivantes montrent comment gérer le compte Azure Cosmos DB, et notamment :
- Création d’un compte Azure Cosmos DB
- Mettre à jour un compte Azure Cosmos DB
- Répertorier tous les comptes Azure Cosmos DB à un abonnement
- Obtenir un compte Azure Cosmos DB
- Supprimer un compte Azure Cosmos DB
- Mettre à jour les étiquettes d’un compte Azure Cosmos DB
- Répertorier les clés d’un compte Azure Cosmos DB
- Regénérer les clés d’un compte Azure Cosmos DB
- Répertorier les chaînes de connexion d’un compte Azure Cosmos DB
- Modifier la priorité de basculement pour un compte Azure Cosmos DB
- Déclencher un basculement manuel pour un compte Azure Cosmos DB
- Lister les verrous de ressources sur un compte Azure Cosmos DB
Créer un compte Azure Cosmos DB
Cette commande crée un compte de base de données Azure Cosmos DB avec plusieurs régions, un basculement géré par le service et une stratégie de cohérence d’obsolescence limitée.
$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
Groupe de ressources Azure dans lequel déployer le compte Azure Cosmos DB. Il doit déjà exister.$locations
Les régions du compte de base de données, la région avecFailoverPriority 0
est la région d’écriture.$accountName
Nom du compte Azure Cosmos DB. Il doit être unique, en minuscules, comporter uniquement des caractères alphanumériques et « - », et sa longueur doit être comprise entre 3 et 31 caractères.$apiKind
Type de compte Azure Cosmos DB à créer. Pour plus d’informations, consultez API dans Azure Cosmos DB.$consistencyPolicy
,$maxStalenessInterval
et$maxStalenessPrefix
Niveau de cohérence par défaut et paramètres du compte Azure Cosmos DB. Pour plus d’informations, consultez Niveaux de cohérence dans Azure Cosmos DB.
Les comptes Azure Cosmos DB peuvent être configurés avec un pare-feu IP, des points de terminaison de service Réseau virtuel et des points de terminaison privés. Pour plus d’informations sur la configuration du pare-feu IP pour Azure Cosmos DB, consultez Configurer le pare-feu IP. Pour savoir comment activer des points de terminaison de service pour Azure Cosmos DB, consultez Configurer l’accès à partir de réseaux virtuels. Pour savoir comment activer des points de terminaison privés pour Azure Cosmos DB, consultez Configurer l’accès à partir points de terminaison privés.
Répertorier tous les comptes Azure Cosmos DB d’un groupe de ressources
Cette commande répertorie tous les comptes Azure Cosmos DB d’un groupe de ressources.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Obtenir les propriétés d’un compte Azure Cosmos DB
Cette commande vous permet d’obtenir les propriétés d’un compte Azure Cosmos DB existant.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Mettre à jour un compte Azure Cosmos DB
Cette commande vous permet de mettre à jour les propriétés de votre compte de base de données Azure Cosmos DB. Les propriétés pouvant être mises à jour sont les suivantes :
- Ajout ou suppression de régions
- Modification de la stratégie de cohérence par défaut
- Modification du filtre de plage IP
- Modification des configurations de Réseau virtuel
- Activer les écritures multirégions
Notes
Vous ne pouvez pas ajouter ou supprimer simultanément des régions (locations
) et modifier d’autres propriétés pour un compte Azure Cosmos DB. La modification des régions est une opération qui doit être effectuée séparément de toute autre modification apportée au compte.
Notes
Cette commande vous permet d’ajouter ou de supprimer des régions, mais ne vous permet pas de modifier des priorités de basculement ni de déclencher un basculement manuel. Consultez Modifier la priorité de basculement et Déclencher un basculement manuel.
Conseil
Quand une nouvelle région est ajoutée, toutes les données doivent être entièrement répliquées et validées dans la nouvelle région pour que celle-ci soit marquée comme disponible. Le temps nécessaire à cette opération dépend de la quantité de données stockées dans le compte. Si une opération de mise à l’échelle du débit asynchrone est en cours, l’opération de mise à l’échelle du débit est suspendue et reprend automatiquement une fois l’opération d’ajout ou de suppression de région terminée.
# 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."
Activer plusieurs régions d’écriture pour un compte 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
Supprimer un compte Azure Cosmos DB
Cette commande permet de supprimer un compte Azure Cosmos DB existant.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Mettre à jour les étiquettes d’un compte Azure Cosmos DB
Cette commande permet de définir les étiquettes de ressources Azure d’un compte Azure Cosmos DB. Les balises peuvent être définies aussi bien au moment de la création du compte à l’aide de New-AzCosmosDBAccount
que de la mise à jour du compte à l’aide de Update-AzCosmosDBAccount
.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Liste des clés de comptes
Lorsque vous créez un compte Azure Cosmos DB, le service génère deux clés d’accès primaires qui peuvent être utilisées pour l’authentification lors de l’accès au compte Azure Cosmos DB. Des clés en lecture seule pour l’authentification des opérations en lecture seule sont aussi générées. En fournissant deux clés d’accès, Azure Cosmos DB vous permet de procéder à la régénération et à la rotation d’une seule clé à la fois sans imposer d’interruption à votre compte Azure Cosmos DB. Les comptes Azure Cosmos DB ont deux clés en lecture/écriture (primaire et secondaire) et deux clés en lecture seule (primaire et secondaire).
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccountKey `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Type "Keys"
Répertorier les chaînes de connexion
La commande suivante permet de récupérer des chaînes de connexion pour connecter des applications au compte Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccountKey `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Type "ConnectionStrings"
Régénérer des clés de compte
Les clés d’accès à un compte Azure Cosmos DB doivent être régulièrement régénérées pour préserver la sécurité des connexions. Des clés d’accès primaire et secondaire sont affectées au compte. Les clients peuvent ainsi conserver un accès pendant la regénération d’une clé à la fois. Il existe quatre types de clés pour un compte Azure Cosmos DB (Primary, Secondary, PrimaryReadonly et 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
Activer le basculement géré par le service
La commande suivante permet de configurer un compte Azure Cosmos DB pour qu’il effectue un basculement managé par le service vers sa région secondaire, si la région primaire devient indisponible.
$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
Modifier la priorité de basculement
Pour les comptes configurés avec le basculement géré par le service, vous pouvez modifier l’ordre dans lequel Azure Cosmos DB promeut les réplicas secondaires en réplicas principaux en cas d’indisponibilité de ce dernier.
Dans l’exemple ci-dessous, partez du principe que la priorité de basculement actuelle est West US = 0
, East US = 1
, South Central US = 2
. La commande la fait passer à West US = 0
, South Central US = 1
, East US = 2
.
Attention
Le changement d’emplacement pour failoverPriority=0
déclenche le basculement manuel d’un compte Azure Cosmos DB. Tout autre changement de priorité ne déclenche pas de basculement.
$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
Déclencher un basculement manuel
Pour les comptes configurés avec le basculement manuel, vous pouvez faire basculer n’importe quel réplica secondaire et le promouvoir en réplica principal en affectant failoverPriority=0
. Cette opération permet de lancer un test de reprise d’activité de façon à tester la planification de reprise d’activité.
Pour l’exemple ci-dessous, supposons que le compte a actuellement la priorité de basculement West US = 0
et East US = 1
, et inversons les régions.
Attention
Le changement de locationName
pour failoverPriority=0
déclenche un basculement manuel d’un compte Azure Cosmos DB. Tout autre changement de priorité ne déclenche pas de basculement.
Notes
Si vous effectuez une opération de basculement manuel alors qu’une opération de mise à l’échelle du débit asynchrone est en cours, cette dernière est suspendue. Elle reprend automatiquement une fois l’opération de basculement terminée.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Lister les verrous de ressources sur un compte Azure Cosmos DB
Des verrous de ressources peuvent être placés sur les ressources Azure Cosmos DB, y compris les bases de données et les collections. L’exemple ci-dessous montre comment lister tous les verrous de ressources Azure sur un compte Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Base de données Azure Cosmos DB
Les sections suivantes montrent comment gérer la base de données Azure Cosmos DB, et notamment de :
- Créer une base de données Azure Cosmos DB
- Créer une base de données Azure Cosmos DB avec débit partagé
- Obtenir le débit d’une base de données Azure Cosmos DB
- Migrer le débit de base de données vers la mise à l’échelle automatique
- Lister toutes les bases de données Azure Cosmos DB d’un compte
- Obtenir une base de données Azure Cosmos DB unique
- Supprimer une base de données Azure Cosmos DB
- Créer un verrou de ressource sur une base de données Azure Cosmos DB pour empêcher sa suppression
- Supprimer un verrou de ressource sur une base de données Azure Cosmos DB
Créer une base de données Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Créer une base de données Azure Cosmos DB avec débit partagé
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Obtenir le débit d’une base de données Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Migrer le débit de base de données vers la mise à l’échelle automatique
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Obtenir toutes les bases de données Azure Cosmos DB d’un compte
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Obtenir une base de données Azure Cosmos DB unique
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Supprimer une base de données Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Créer un verrou de ressource sur une base de données Azure Cosmos DB pour empêcher sa suppression
$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
Supprimer un verrou de ressource sur une base de données 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
Conteneur Azure Cosmos DB
Les sections suivantes montrent comment gérer le conteneur Azure Cosmos DB, et notamment de :
- Créer un conteneur Azure Cosmos DB
- Créer un conteneur Azure Cosmos DB avec une mise à l’échelle automatique
- Créer un conteneur Azure Cosmos DB avec une grande clé de partition
- Obtenir le débit d’un conteneur Azure Cosmos DB
- Migrer le débit de conteneur vers la mise à l’échelle automatique
- Créer un conteneur Azure Cosmos DB avec une indexation personnalisée
- Créer un conteneur Azure Cosmos DB avec l’indexation désactivée
- Créer un conteneur Azure Cosmos DB avec une clé unique et une durée de vie
- Créer un conteneur Azure Cosmos DB avec la résolution des conflits
- Lister tous les conteneurs Azure Cosmos DB d’une base de données
- Obtenir un conteneur Azure Cosmos DB unique d’une base de données
- Supprimer un conteneur Azure Cosmos DB
- Créer un verrou de ressource sur un conteneur Azure Cosmos DB pour empêcher sa suppression
- Supprimer un verrou de ressource sur un conteneur Azure Cosmos DB
Créer un conteneur 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
Créer un conteneur Azure Cosmos DB avec une mise à l’échelle automatique
# 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
Créer un conteneur Azure Cosmos DB avec une clé de partition de grande taille
# 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
Obtenir le débit d’un conteneur Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Migrer le débit de conteneur vers la mise à l’échelle automatique
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Créer un conteneur Azure Cosmos DB avec une stratégie d’indexation personnalisée
# 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
Créer un conteneur Azure Cosmos DB avec l’indexation désactivée
# 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
Créer un conteneur Azure Cosmos DB avec une stratégie de clé unique et une durée de vie
# 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
Créer un conteneur Azure Cosmos DB avec la résolution des conflits
Pour écrire tous les conflits dans ConflictsFeed et les gérer séparément, passez -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
Pour créer une stratégie de résolution des conflits afin d’utiliser une procédure stockée, appelez New-AzCosmosDBSqlConflictResolutionPolicy
et passez les paramètres -Type
et -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
Lister tous les conteneurs Azure Cosmos DB d’une base de données
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Obtenir un conteneur Azure Cosmos DB unique d’une base de données
# 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
Supprimer un conteneur 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
Créer un verrou de ressource sur un conteneur Azure Cosmos DB pour empêcher sa suppression
$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
Supprimer un verrou de ressource sur un conteneur 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