Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O guia seguinte descreve como usar o PowerShell para programar e automatizar a gestão de recursos do Azure Cosmos DB para NoSQL, incluindo a conta Azure Cosmos DB, base de dados, contentor e throughput. Para cmdlets do PowerShell para outras APIs, veja Exemplos de PowerShell para Cassandra, Exemplos de PowerShell para a API MongoDB, Exemplos de PowerShell para Gremlin, Exemplos de PowerShell para Tabela
Observação
Exemplos neste artigo utilizam os cmdlets de gestão Az.CosmosDB. Consulte a página de referência da API do Az.CosmosDB para as alterações mais recentes.
Para a gestão multiplataforma do Azure Cosmos DB, pode usar os cmdlets Az e Az.CosmosDB com PowerShell Multiplataforma, o Azure CLI, a API REST ou o portal do Azure.
Observação
Recomendamos que utilize o módulo Azure Az PowerShell para interagir com o Azure. Para começar, veja Install Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, veja Migrate Azure PowerShell from AzureRM to Az.
Introdução
Siga as instruções em Como instalar e configurar o Azure PowerShell para instalar e iniciar sessão na sua conta Azure no PowerShell.
Importante
Os recursos do Azure Cosmos DB não podem ser renomeados, pois isso viola a forma como o Azure Resource Manager funciona com URIs de recursos.
Contas do Azure Cosmos DB
As seções a seguir demonstram como gerenciar a conta do Azure Cosmos DB, incluindo:
- Criar uma conta do Azure Cosmos DB
- Atualizar uma conta Azure Cosmos DB
- Liste todas as contas Azure Cosmos DB numa subscrição
- Obtenha uma conta Azure Cosmos DB
- Eliminar uma conta Azure Cosmos DB
- Atualizar etiquetas para uma conta Azure Cosmos DB
- Modificar a prioridade de failover para uma conta Azure Cosmos DB
- Acionar um failover manual para uma conta Azure Cosmos DB
- Listar bloqueios de recursos numa conta do Azure Cosmos DB
Criar uma conta do Azure Cosmos DB
Este comando cria uma conta de base de dados Azure Cosmos com múltiplas regiões, failover gerido por serviços e política de consistência de estagnação 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
-
$resourceGroupNameO grupo de recursos Azure onde implementar a conta Azure Cosmos DB. Deve já existir. -
$locationsAs regiões para a conta da base de dados, a região comFailoverPriority 0é a região de escrita. -
$accountNameO nome da conta Azure Cosmos DB. Devem ser únicos, minúsculos, incluir apenas caracteres alfanuméricos e '-', e ter entre 3 e 31 caracteres de extensão. -
$apiKindO tipo de conta Azure Cosmos DB a criar. Para mais informações, consulte APIs no Azure Cosmos DB. -
$consistencyPolicy,$maxStalenessInterval, e$maxStalenessPrefixO nível de consistência e as definições padrão da conta Azure Cosmos DB. Para mais informações, consulte Níveis de Consistência no Azure Cosmos DB.
As contas Azure Cosmos DB podem ser configuradas com IP Firewall, endpoints de serviço de Rede Virtual e endpoints privados. Para informações sobre como configurar o IP Firewall para Azure Cosmos DB, consulte Configurar IP Firewall. Para informações sobre como ativar endpoints de serviço para o Azure Cosmos DB, veja Configurar acesso a partir de redes virtuais. Para informações sobre como ativar endpoints privados para o Azure Cosmos DB, consulte Configurar acesso a partir de endpoints privados.
Liste todas as contas Azure Cosmos DB num Grupo de Recursos
Este comando lista todas as contas Azure Cosmos DB num Grupo de Recursos.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Obtenha as propriedades de uma conta Azure Cosmos DB
Este comando permite-lhe obter as propriedades de uma conta existente no Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Atualizar uma conta Azure Cosmos DB
Este comando permite-lhe atualizar as propriedades da sua conta de base de dados Azure Cosmos DB. As propriedades que podem ser atualizadas incluem as seguintes:
- Adição ou remoção de regiões
- Mudança da política de consistência predefinida
- Alteração do Filtro de Alcance IP
- Alteração das configurações da Rede Virtual
- Ativar escritas em múltiplas regiões
Observação
Não podes adicionar ou remover simultaneamente regiões (locations) e alterar outras propriedades para uma conta Azure Cosmos DB. A modificação das regiões deve ser realizada como uma operação separada de qualquer outra alteração na conta.
Observação
Este comando permite adicionar e remover regiões, mas não permite modificar prioridades de failover ou acionar um failover manual. Veja Modificar a prioridade de failover e Acionar failover manual.
Sugestão
Quando é adicionada uma nova região, todos os dados têm de estar totalmente replicados e consolidados na nova região antes desta ser marcada como disponível. O tempo que esta operação demora dependerá da quantidade de dados armazenados na conta. Se uma operação de dimensionamento assíncrono de taxa de transferência estiver em andamento, a operação de expansão de taxa de transferência será pausada e retomada automaticamente quando a operação de adicionar/remover região for concluída.
# 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."
Ativar múltiplas regiões de escrita para uma conta 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 uma conta Azure Cosmos DB
Este comando elimina uma conta existente no Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Atualizar Tags de uma conta Azure Cosmos DB
Este comando define as etiquetas de recurso Azure para uma conta Azure Cosmos DB. As etiquetas podem ser definidas tanto na criação da conta usando New-AzCosmosDBAccount como na atualização da conta usando Update-AzCosmosDBAccount.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Habilitar failover gerenciado por serviço
O comando seguinte define uma conta Azure Cosmos DB para realizar um failover gerido por serviços para a sua região secundária caso a região principal se torne indisponível.
$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 a Prioridade de Failover
Para contas configuradas com Service-Managed Failover, pode alterar a ordem em que o Azure Cosmos DB promove réplicas secundárias a primárias caso a primárias fiquem indisponíveis.
Para o exemplo abaixo, assuma que a prioridade atual de failover é West US = 0, East US = 1, South Central US = 2. O comando irá alterar isto para West US = 0, South Central US = 1, East US = 2.
Atenção
Alterar a localização de failoverPriority=0 desencadeará um failover manual da conta Azure Cosmos DB. Quaisquer outras alterações de prioridade não vão desencadear um failover.
$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
Acionar Failover Manual
Para contas configuradas com failover manual, pode executar o failover e promover qualquer réplica secundária a primária modificando para failoverPriority=0. Esta operação pode ser usada para iniciar um exercício de recuperação de desastres para testar o planeamento da recuperação de desastres.
Para o exemplo abaixo, assuma que a conta tem uma prioridade de failover atual de West US = 0 e East US = 1 e inverta as regiões.
Atenção
Mudar locationName para failoverPriority=0 irá ativar um failover manual para uma conta Azure Cosmos DB. Qualquer outra alteração de prioridade não desencadeará um failover.
Observação
Se você executar uma operação de failover manual enquanto uma operação de dimensionamento assíncrono de taxa de transferência estiver em andamento, a operação de expansão de taxa de transferência será pausada. Ele será retomado automaticamente quando a operação de failover for concluída.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Liste os bloqueios de recursos numa conta Azure Cosmos DB
Os bloqueios de recursos podem ser colocados em recursos do Azure Cosmos DB, incluindo bases de dados e coleções. O exemplo abaixo mostra como listar todos os bloqueios de recursos Azure numa conta Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Azure Cosmos DB Database
As seções a seguir demonstram como gerenciar o banco de dados do Azure Cosmos DB, incluindo:
- Criar uma base de dados Azure Cosmos DB
- Crie uma base de dados do Azure Cosmos DB com largura de banda partilhada
- Obtenha o throughput de uma base de dados do Azure Cosmos DB
- Migrar o rendimento da base de dados para autoescalabilidade
- Listar todas as bases de dados Azure Cosmos DB numa conta
- Obtenha uma única base de dados Azure Cosmos DB
- Eliminar uma base de dados Azure Cosmos DB
- Crie um bloqueio de recurso numa base de dados Azure Cosmos para evitar a eliminação
- Remover um bloqueio de recurso numa base de dados Azure Cosmos DB
Criar uma base de dados Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Crie uma base de dados Azure Cosmos DB com largura de banda partilhada
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Obtenha o desempenho (throughput) de uma base de dados Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Migrar o rendimento da base de dados para autoescalabilidade
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Obtenha todas as bases de dados Azure Cosmos numa conta
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Obtenha uma única base de dados Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Eliminar uma base de dados Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Crie um bloqueio de recurso numa base de dados Azure Cosmos para evitar a eliminação
$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
Remover um bloqueio de recurso numa base de dados 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
Azure Cosmos DB Container
As seções a seguir demonstram como gerenciar o contêiner do Azure Cosmos DB, incluindo:
- Criar um contentor do Azure Cosmos DB
- Crie um contentor Azure Cosmos DB com suporte para escala automática
- Crie um contentor Azure Cosmos DB com uma chave de partição grande
- Obtenha o throughput de um contêiner do Azure Cosmos DB
- Migrar o throughput do contentor para escalonamento automático
- Crie um contentor Azure Cosmos DB com indexação personalizada
- Crie um contentor Azure Cosmos DB com a indexação desligada
- Crie um contentor Azure Cosmos DB com chave única e TTL
- Crie um contentor Azure Cosmos DB com resolução de conflitos
- Listar todos os contentores Azure Cosmos DB numa base de dados
- Obtenha um único contentor Azure Cosmos DB numa base de dados
- Delete an Azure Cosmos DB container
- Crie um bloqueio de recurso num contentor Azure Cosmos DB para evitar a eliminação
- Remover um bloqueio de recurso num contentor de base de dados Azure Cosmos
Criar um contentor do 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
Crie um contentor do Azure Cosmos DB com escala 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
Crie um contentor Azure Cosmos DB com uma chave de partição de tamanho 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
Obtenha a taxa de processamento de um contentor do Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Migrar a taxa de transferência do contentor para redimensionamento automático
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Crie um contentor Azure Cosmos DB com uma política 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
Crie um contentor Azure Cosmos DB com a indexação desligada
# 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
Crie um contentor Azure Cosmos DB com política de chave única e 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
Crie um contentor Azure Cosmos DB com resolução de conflitos
Para escrever todos os conflitos no ConflictsFeed e tratar separadamente, passe -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 criar uma política de resolução de conflitos para usar um procedimento armazenado, chamar New-AzCosmosDBSqlConflictResolutionPolicy e passar parâmetros -Type e -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
Listar todos os contentores Azure Cosmos DB numa base de dados
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Obtenha um único contentor Azure Cosmos DB numa base de dados
# 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
Eliminar um contêiner do 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
Crie um bloqueio de recurso num contentor Azure Cosmos DB para evitar a eliminação
$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
Remover um bloqueio de recurso num contentor de base de dados Azure Cosmos
$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