Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la siguiente guía se describe cómo usar PowerShell para generar scripts y automatizar la administración de recursos de Azure Cosmos DB para noSQL, incluida la cuenta de Azure Cosmos DB, la base de datos, el contenedor y el rendimiento. Para los cmdlets de PowerShell para otras API, consulte los Ejemplos de PowerShell para Cassandra, Ejemplos de PowerShell para API para MongoDB, Ejemplos de PowerShell para Gremlin, Ejemplos de PowerShell para Table
Nota:
En los ejemplos de este artículo se usan Az.CosmosDB cmdlets de administración. Consulte la página de referencia de la API de Az.CosmosDB para ver los cambios más recientes.
Para la administración multiplataforma de Azure Cosmos DB, puede usar los cmdlets Az y Az.CosmosDB con PowerShell multiplataforma, la CLI de Azure, la API REST o el portal de Azure.
Nota:
Se recomienda usar el módulo de PowerShell de Azure Az para interactuar con Azure. Para comenzar, consulte Instalación de Azure PowerShell. Para obtener información sobre cómo migrar al módulo Az 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 su cuenta de Azure en PowerShell.
Importante
No se puede cambiar el nombre de los recursos de Azure Cosmos DB, ya que esto infringe el funcionamiento 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 en una suscripción
- Obtención de una cuenta de Azure Cosmos DB
- Eliminación de una cuenta de Azure Cosmos DB
- Actualización de etiquetas para una cuenta de Azure Cosmos DB
- Modificar la prioridad de conmutación por error para una cuenta de Azure Cosmos DB
- Ejecutar una conmutación por error manual para una cuenta de Azure Cosmos DB
- Enumeración de 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 el servicio y una directiva de coherencia con 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
-
$resourceGroupNameEl grupo de recursos de Azure en el que se va a implementar la cuenta de Azure Cosmos DB. Ya debe existir. -
$locationsLas regiones de la cuenta de base de datos, la región conFailoverPriority 0es la región de escritura. -
$accountNameNombre de la cuenta de Azure Cosmos DB. Debe ser único, en minúsculas, incluir solo caracteres alfanuméricos y "-" y entre 3 y 31 caracteres de longitud. -
$apiKindTipo de cuenta de Azure Cosmos DB que se va a crear. Para más información, consulte API en Azure Cosmos DB. -
$consistencyPolicy,$maxStalenessIntervaly$maxStalenessPrefixel 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 obtener información sobre cómo configurar el firewall de IP para Azure Cosmos DB, consulte Configuración del firewall de IP. Para obtener información sobre cómo habilitar puntos de conexión de servicio para Azure Cosmos DB, consulte Configuración del acceso desde redes virtuales. Para obtener información sobre cómo habilitar 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 en 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 permite obtener las propiedades de una cuenta de Azure Cosmos DB existente.
$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. Entre las propiedades que se pueden actualizar se incluyen las siguientes:
- Adición o eliminación de regiones
- Cambio de la política de consistencia predeterminada
- Cambio del filtro de intervalo IP
- Cambio de las configuraciones de red virtual
- Habilitación de escrituras en varias regiones
Nota:
No se pueden agregar o quitar regiones simultáneamente (locations) ni cambiar otras propiedades de una cuenta de Azure Cosmos DB. La modificación de las 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 Activación de la 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
Eliminación de 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 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 en la creación de cuentas mediante New-AzCosmosDBAccount y en la actualización de la cuenta 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 configura una cuenta de Azure Cosmos DB para llevar a cabo una conmutación por error gestionada por el servicio hacia su región secundaria, en caso de que la región primaria quede inaccesible.
$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
Modificar la prioridad de conmutación por error
En el caso de las cuentas configuradas con conmutación por error administrada por el servicio, puede cambiar el orden en el que Azure Cosmos DB promoverá las réplicas secundarias a la principal si la principal deja de estar disponible.
En el ejemplo siguiente, supongamos que la prioridad de conmutación por error actual es West US = 0, East US = 1, South Central US = 2. El comando cambiará esto a West US = 0, South Central US = 1, East US = 2.
Precaución
Cambiar la ubicación de failoverPriority=0 desencadenará una conmutación por error manual para una cuenta de Azure Cosmos DB. Cualquier otro cambio de prioridad no desencadenará una 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
Desencadenar conmutación por error manual
En el caso de las cuentas configuradas para conmutación manual, puede promover cualquier réplica secundaria a principal modificando en failoverPriority=0. Esta operación se puede usar para iniciar un simulacro de recuperación ante desastres para probar el planeamiento de la recuperación ante desastres.
En el siguiente ejemplo, suponga que la cuenta tiene una prioridad de conmutación por error actual de West US = 0 y que intercambia las regiones con East US = 1.
Precaución
Al cambiar locationName por failoverPriority=0, se desencadenará una conmutación por error manual para 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 de escalado asincrónico del rendimiento en curso, la operación de escalado del rendimiento se pausará. Se reanudará automáticamente cuando se complete 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
Enumeración de bloqueos de recursos en una cuenta de Azure Cosmos DB
Los bloqueos de recursos se pueden colocar en recursos de Azure Cosmos DB, incluidas las bases de datos y las 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 rendimiento compartido
- Obtención del rendimiento de una base de datos de Azure Cosmos DB
- Migrar el rendimiento de la base de datos a escalado automático
- Enumeración de todas las bases de datos de Azure Cosmos DB en una cuenta
- Obtención de una base de datos única 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 rendimiento compartido
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Obtención del rendimiento 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 la base de datos al escalado automático
$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 en una cuenta
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Obtención de una base de datos única 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 del rendimiento de un contenedor de Azure Cosmos DB
- Migrar la capacidad de procesamiento del contenedor a la escala 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 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 en una base de datos
- Obtención de un único contenedor 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 un tamaño de 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 del rendimiento 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 del contenedor al escalado automático
$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 índice 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 gestionarlos por separado, 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 usar un procedimiento almacenado, llame New-AzCosmosDBSqlConflictResolutionPolicy a y pase 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 en 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 único contenedor 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