Administración de recursos de Azure Cosmos DB for NoSQL mediante PowerShell
SE APLICA A: NoSQL
En la guía siguiente se describe cómo usar PowerShell para crear scripts y automatizar la administración de los recursos de Azure Cosmos DB for NoSQL, incluida la cuenta, la base de datos, el contenedor y el rendimiento de Azure Cosmos DB. Para obtener cmdlets de PowerShell para otras API, consulte Ejemplos de PowerShell para Cassandra, Ejemplos de PowerShell para la API de MongoDB, Ejemplos de PowerShell para Gremlin y Ejemplos de PowerShell para Table
Nota:
En los ejemplos de este artículo, se usan los cmdlets de administración de Az.CosmosDB. Consulte la página de referencia de la API de Az.CosmosDB para conocer los cambios más recientes.
Para la administración multiplataforma de Azure Cosmos DB, puede usar los cmdlets Az
y Az.CosmosDB
con versiones multiplataforma de PowerShell, así como la CLI de Azure, la API REST o Azure Portal.
Nota
Se recomienda usar el módulo Azure Az de PowerShell para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para más información sobre cómo migrar al módulo Az de PowerShell, consulte Migración de Azure PowerShell de AzureRM a Az.
Introducción
Siga las instrucciones de Instalación y configuración de Azure PowerShell para instalar e iniciar sesión en la cuenta de Azure en PowerShell.
Importante
No se puede cambiar el nombre de los recursos de Azure Cosmos DB, ya que esto infringe la forma de funcionar de Azure Resource Manager con los URI de recursos.
Cuentas de Azure Cosmos DB
En las secciones siguientes se muestra cómo administrar la cuenta de Azure Cosmos DB, por ejemplo:
- Creación de una cuenta de Azure Cosmos DB
- Actualización de una cuenta de Azure Cosmos DB
- Enumeración de todas las cuentas de Azure Cosmos DB de una suscripción
- Obtención de una cuenta de Azure Cosmos DB
- Eliminación de una cuenta de Azure Cosmos DB
- Actualización de las etiquetas de una cuenta de Azure Cosmos DB
- Modificación de la prioridad de conmutación por error de una cuenta de Azure Cosmos DB
- Desencadenamiento de una conmutación por error manual en una cuenta de Azure Cosmos DB
- Enumerar los bloqueos de recursos en una cuenta de Azure Cosmos DB
Creación de una cuenta de Azure Cosmos DB
Este comando crea una cuenta de base de datos de Azure Cosmos DB con varias regiones, conmutación por error administrada por servicio y directiva de coherencia de obsolescencia limitada.
$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
El grupo de recursos de Azure en el que se implementa la cuenta de Azure Cosmos DB. Debe existir.$locations
Las regiones de la cuenta de base de datos, la región conFailoverPriority 0
es la región de escritura.$accountName
Nombre de la cuenta de Azure Cosmos DB. Debe ser único, en minúsculas, incluir solo caracteres alfanuméricos y "-", y tener una longitud entre 3 y 31 caracteres.$apiKind
Tipo de cuenta de Azure Cosmos DB que se va a crear. Para obtener más información, consulte API en Azure Cosmos DB.$consistencyPolicy
,$maxStalenessInterval
y$maxStalenessPrefix
El nivel de coherencia predeterminado y la configuración de la cuenta de Azure Cosmos DB. Para más información, consulte Niveles de coherencia en Azure Cosmos DB.
Las cuentas de Azure Cosmos DB se pueden configurar con firewall de IP, puntos de conexión de servicio de red virtual y puntos de conexión privados. Para más información sobre cómo configurar el firewall de IP para Azure Cosmos DB, consulte Configuración del firewall de IP. Para más información sobre cómo habilitar los puntos de conexión de servicio para Azure Cosmos DB, consulte Configuración del acceso desde redes virtuales. Para más información sobre cómo habilitar los puntos de conexión privados para Azure Cosmos DB, consulte Configuración del acceso desde puntos de conexión privados.
Enumeración de todas las cuentas de Azure Cosmos DB de un grupo de recursos
Este comando enumera todas las cuentas de Azure Cosmos DB de un grupo de recursos.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Obtención de las propiedades de una cuenta de Azure Cosmos DB
Este comando le permite obtener las propiedades de una cuenta de base de datos de Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Actualización de una cuenta de Azure Cosmos DB
Este comando permite actualizar las propiedades de la cuenta de base de datos de Azure Cosmos DB. Las propiedades que se pueden actualizar incluyen las siguientes:
- Adición o eliminación de registros
- Cambio de la directiva de coherencia predeterminada
- Cambio del filtro del intervalo de direcciones IP
- Cambio de las configuraciones de la red virtual
- Habilitación de escrituras en varias regiones
Nota:
En una cuenta de Azure Cosmos DB no es posible agregar o quitar regiones (locations
) al mismo tiempo ni cambiar otras propiedades. La modificación de regiones debe realizarse como una operación independiente de cualquier otro cambio en la cuenta.
Nota:
Este comando permite agregar y quitar regiones, pero no permite modificar las prioridades de conmutación por error ni desencadenar una conmutación por error manual. Consulte Modificación de la prioridad de conmutación por error y Desencadenamiento de una conmutación por error manual.
Sugerencia
Cuando se agrega una nueva región, todos los datos deben replicarse por completo y estar confirmados en la nueva región antes de que la región se marque como disponible. La cantidad de tiempo que tarde esta operación dependerá de la cantidad de datos almacenados en la cuenta. Si hay una operación asincrónica de escalado del rendimiento en curso, la operación de escalado vertical del rendimiento se pausa y se reanuda automáticamente cuando se completa la operación de agregar o quitar región.
# 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."
Habilitación de varias regiones de escritura para una cuenta de 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
Eliminar una cuenta de Azure Cosmos DB
Este comando elimina una cuenta de Azure Cosmos DB existente.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Actualización de las etiquetas de una cuenta de Azure Cosmos DB
Este comando establece las etiquetas de recursos de Azure para una cuenta de Azure Cosmos DB. Las etiquetas se pueden establecer tanto en la creación de cuentas mediante New-AzCosmosDBAccount
, como en la actualización de cuentas mediante Update-AzCosmosDBAccount
.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Habilitación de la conmutación por error administrada por servicio
El siguiente comando establece que una cuenta de Azure Cosmos DB realice una conmutación por error administrada por el servicio en su región secundaria en caso de que la región principal deje de estar disponible.
$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
Modificación de la prioridad de conmutación por error
En el caso de las cuentas configuradas con conmutación por error administrada por servicio, puede cambiar el orden en el que Azure Cosmos DB promoverá las réplicas secundarias a principales si las principales dejan de estar disponibles.
Para el ejemplo siguiente, asuma que la prioridad de la conmutación por error actual es West US = 0
, East US = 1
y South Central US = 2
. El comando cambiará esto a West US = 0
, South Central US = 1
y East US = 2
.
Precaución
El cambio de la ubicación de failoverPriority=0
desencadenará una conmutación por error manual en una cuenta de Azure Cosmos DB. Cualquier otro cambio de prioridad no desencadenará ninguna conmutación por error.
$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
Desencadenamiento de una conmutación por error manual
En el caso de las cuentas configuradas con conmutación por error manual, puede realizar la conmutación y promocionar cualquier réplica secundaria a principal mediante la modificación de failoverPriority=0
. Esta operación se puede usar para iniciar una exploración de recuperación ante desastres para probar la planeación de esta última.
En el ejemplo siguiente, suponga que la cuenta tiene una prioridad de conmutación por error actual de West US = 0
y East US = 1
, y que se invierten las regiones.
Precaución
Cambiar locationName
por failoverPriority=0
desencadenará una conmutación por error manual de una cuenta de Azure Cosmos DB. Los restantes cambios de prioridad no desencadenarán ninguna conmutación por error.
Nota:
Si realiza una operación de conmutación por error manual mientras hay una operación asincrónica de escalado del rendimiento en curso, la operación de escalado vertical del rendimiento se pausa. Se reanuda automáticamente cuando se completa la operación de conmutación por error.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Enumerar los bloqueos de recursos en una cuenta de Azure Cosmos DB
Se pueden establecer bloqueos de recursos en recursos de Azure Cosmos DB, incluidas bases de datos y colecciones. En el ejemplo siguiente se muestra cómo enumerar todos los bloqueos de recursos de Azure en una cuenta de Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Base de datos de Azure Cosmos DB
En las siguientes secciones se muestra cómo se administra la base de datos de Azure Cosmos DB, lo que incluye:
- Creación de una base de datos de Azure Cosmos DB
- Creación de una base de datos de Azure Cosmos DB con capacidad de proceso compartido
- Obtención de la capacidad de proceso de una base de datos de Azure Cosmos DB
- Migración del rendimiento de base de datos a escalabilidad automática
- Enumeración de todas las bases de datos de Azure Cosmos DB en una cuenta
- Obtención de una sola base de datos de Azure Cosmos DB
- Eliminación de una base de datos de Azure Cosmos DB
- Creación de un bloqueo de recursos en una base de datos de Azure Cosmos DB para evitar la eliminación
- Eliminación de un bloqueo de recursos en una base de datos de Azure Cosmos DB
Creación de una base de datos de Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Creación de una base de datos de Azure Cosmos DB con capacidad de proceso compartido
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Obtención de la capacidad de proceso de una base de datos de Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Migración del rendimiento de base de datos a escalabilidad automática
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Obtención de todas las bases de datos de Azure Cosmos DB de una cuenta
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Obtención de una sola base de datos de Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Eliminación de una base de datos de Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Creación de un bloqueo de recursos en una base de datos de Azure Cosmos DB para evitar la eliminación
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$resourceName = "$accountName/$databaseName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
Eliminación de un bloqueo de recursos en una base de datos de 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
Contenedor de Azure Cosmos DB
En las siguientes secciones se muestra cómo administrar el contenedor de Azure Cosmos DB, lo que incluye:
- Creación de un contenedor de Azure Cosmos DB
- Creación de un contenedor de Azure Cosmos DB con escalabilidad automática
- Creación de un contenedor de Azure Cosmos DB con una clave de partición grande
- Obtención de la capacidad de proceso de un contenedor de Azure Cosmos DB
- Migración del rendimiento de contenedor a escalabilidad automática
- Creación de un contenedor de Azure Cosmos DB con indexación personalizada
- Creación de un contenedor de Azure Cosmos DB con la indexación desactivada
- Creación de un contenedor de Azure Cosmos DB con una clave única y TTL
- Creación de un contenedor de Azure Cosmos DB con resolución de conflictos
- Enumeración de todos los contenedores de Azure Cosmos DB de una base de datos
- Obtención de un contenedor individual de Azure Cosmos DB en una base de datos
- Eliminación de un contenedor de Azure Cosmos DB
- Creación de un bloqueo de recursos en un contenedor de Azure Cosmos DB para evitar la eliminación
- Eliminación de un bloqueo de recursos en un contenedor de Azure Cosmos DB
Creación de un contenedor de 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
Creación de un contenedor de Azure Cosmos DB con escalabilidad automática
# 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
Creación de un contenedor de Azure Cosmos DB con una clave de partición grande
# 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
Obtención de la capacidad de proceso de un contenedor de Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Migración del rendimiento de contenedor a escalabilidad automática
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Creación de un contenedor de Azure Cosmos DB con una directiva de indexación personalizada
# 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
Creación de un contenedor de Azure Cosmos DB con la indexación desactivada
# 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
Creación de un contenedor de Azure Cosmos DB con una directiva de clave única y 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
Creación de un contenedor de Azure Cosmos DB con resolución de conflictos
Para escribir todos los conflictos en ConflictsFeed y controlarlos de manera independiente, pase -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
Para crear una directiva de resolución de conflictos para utilizar un procedimiento almacenado, llame a New-AzCosmosDBSqlConflictResolutionPolicy
y pase los parámetros -Type
y -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
Enumeración de todos los contenedores de Azure Cosmos DB de una base de datos
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Obtención de un contenedor individual de Azure Cosmos DB en una base de datos
# 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
Eliminación de un contenedor de 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
Creación de un bloqueo de recursos en un contenedor de Azure Cosmos DB para evitar la eliminación
$resourceGroupName = "myResourceGroup"
$resourceType = "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
$resourceName = "$accountName/$databaseName/$containerName"
$lockName = "myResourceLock"
$lockLevel = "CanNotDelete"
New-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceType `
-ResourceName $resourceName `
-LockName $lockName `
-LockLevel $lockLevel
Eliminación de un bloqueo de recursos en un contenedor de 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