Gestire le risorse di Azure Cosmos DB for NoSQL usando PowerShell
SI APPLICA A: NoSQL
La guida seguente descrive come usare PowerShell per creare script e automatizzare la gestione delle risorse di Azure Cosmos DB for NoSQL, come account Azure Cosmos DB, database, contenitori e velocità effettiva. Per i cmdlet di PowerShell relativi ad altre API, vedere Esempi di PowerShell per Cassandra, Esempi di PowerShell per l'API per MongoDB, Esempi di PowerShell per Gremlin, Esempi di PowerShell per Tabella
Nota
Negli esempi di questo articolo vengono usati i cmdlet di gestione di Az.CosmosDB. Per informazioni sulle ultime modifiche, vedere la pagina di informazioni di riferimento dell'API Az.CosmosDB.
Per la gestione multipiattaforma dell'account Azure Cosmos DB, è possibile usare i cmdlet Az
e Az.CosmosDB
con PowerShell multipiattaforma, l'interfaccia della riga di comando di Azure, l'API REST o il portale di Azure.
Nota
È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.
Introduzione
Seguire le istruzioni indicate in Come installare e configurare Azure PowerShell per installare e accedere all'account Azure in PowerShell.
Importante
Le risorse di Azure Cosmos DB non possono essere rinominate perché violano il funzionamento di Azure Resource Manager con gli URI delle risorse.
Account Azure Cosmos DB
Le sezioni seguenti illustrano come gestire l'account Azure Cosmos DB:
- Creare un account di Azure Cosmos DB
- Aggiornare un account Azure Cosmos DB
- Elencare tutti gli account Azure Cosmos DB in una sottoscrizione
- Ottenere un account Azure Cosmos DB
- Eliminare un account Azure Cosmos DB
- Aggiornare i tag per un account Azure Cosmos DB
- Elencare le chiavi per un account Azure Cosmos DB
- Rigenerare le chiavi per un account Azure Cosmos DB
- Elencare le stringhe di connessione per un account Azure Cosmos DB
- Modificare la priorità di failover di un account Azure Cosmos DB
- Attivare un failover manuale per un account Azure Cosmos DB
- Elencare i blocchi delle risorse in un account Azure Cosmos DB
Creare un account Azure Cosmos DB
Questo comando crea un account del database Azure Cosmos DB con più aree e failover gestito dal servizio e il criterio di coerenza con decadimento ristretto.
$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
Il gruppo di risorse di Azure in cui distribuire l'account Azure Cosmos DB. Deve essere già esistente.$locations
Le aree per l'account del database, l'area conFailoverPriority 0
è l'area di scrittura.$accountName
Il nome dell'account Azure Cosmos DB. Deve essere univoco, includere solo caratteri alfanumerici minuscoli e '-' e avere una lunghezza compresa tra 3 e 31 caratteri.$apiKind
Il tipo di account Azure Cosmos DB da creare. Per altre informazioni, vedere API in Azure Cosmos DB.$consistencyPolicy
,$maxStalenessInterval
e$maxStalenessPrefix
: livello di coerenza predefinito e impostazioni dell'account Azure Cosmos DB. Per altre informazioni, vedere Livelli di coerenza in Azure Cosmos DB.
Gli account Azure Cosmos DB possono essere configurati con firewall IP, endpoint servizio di rete virtuale ed endpoint privati. Per informazioni su come configurare il firewall IP per Azure Cosmos DB, vedere Configurare il firewall IP. Per informazioni su come abilitare gli endpoint servizio per Azure Cosmos DB, vedere Configurare l'accesso da reti virtuali. Per informazioni su come abilitare gli endpoint privati per Azure Cosmos DB, vedere Configurare l'accesso da endpoint privati.
Elencare tutti gli account Azure Cosmos DB in un gruppo di risorse
Questo comando elenca tutti gli account Azure Cosmos DB in un gruppo di risorse.
$resourceGroupName = "myResourceGroup"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName
Ottenere le proprietà di un account Azure Cosmos DB
Questo comando consente di ottenere le proprietà di un account Azure Cosmos DB esistente.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccount -ResourceGroupName $resourceGroupName -Name $accountName
Aggiornare un account Azure Cosmos DB
Questo comando consente di aggiornare le proprietà di un account del database Azure Cosmos DB. Le proprietà che possono essere aggiornate includono:
- Aggiunta o rimozione di aree
- Modifica dei criteri di coerenza predefiniti
- Modifica del filtro dell'intervallo IP
- Modifica delle configurazioni di reti virtuali
- Abilitazione delle scritture in più aree
Nota
Non è possibile aggiungere o rimuovere simultaneamente aree (locations
) e cambiare l'ordine delle proprietà per un account Azure Cosmos DB. La modifica delle aree deve essere eseguita come operazione distinta rispetto a qualsiasi altra modifica apportata all'account.
Nota
Questo comando consente di aggiungere e rimuovere aree, ma non di modificare le priorità di failover o attivare un failover manuale. Vedere Modificare la priorità di failover e Attivare un failover manuale.
Suggerimento
Quando viene aggiunta una nuova area, occorre eseguire la replica completa e il commit di tutti i dati nella nuova area prima che l'area venga contrassegnata come disponibile. La quantità di tempo necessaria per questa operazione dipenderà dalla quantità di dati archiviati nell'account. Se è in corso un'operazione di ridimensionamento della velocità effettiva asincrona, l'operazione di aumento della velocità effettiva verrà sospesa e riprenderà automaticamente al termine dell'operazione di aggiunta/rimozione dell'area.
# 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."
Abilitare più aree di scrittura per un account 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
Eliminare un account Azure Cosmos DB
Questo comando elimina un account Azure Cosmos DB esistente.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Remove-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-PassThru:$true
Aggiornare i tag per un account Azure Cosmos DB
Questo comando imposta i tag delle risorse di Azure per un account Azure Cosmos DB. I tag possono essere impostati sia durante la creazione dell'account con New-AzCosmosDBAccount
, sia durante l'aggiornamento dell'account usando Update-AzCosmosDBAccount
.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$tags = @{dept = "Finance"; environment = "Production";}
Update-AzCosmosDBAccount `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Tag $tags
Elencare le chiavi dell'account
Quando si crea un account Azure Cosmos DB, il servizio genera due chiavi di accesso principali che possono essere usate per l'autenticazione quando si accede all'account di Azure Cosmos DB. Vengono generate anche chiavi di sola lettura per l'autenticazione delle operazioni di sola lettura. Generando due chiavi di accesso, Azure Cosmos DB consente di rigenerare e ruotare una chiave alla volta senza interruzioni dell'account Azure Cosmos DB. Gli account Azure Cosmos DB hanno due chiavi di lettura/scrittura (primaria e secondaria) e due chiavi di sola lettura (primaria e secondaria).
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccountKey `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Type "Keys"
Elencare le stringhe di connessione
Il comando seguente recupera le stringhe di connessione per connettere le app all'account Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBAccountKey `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-Type "ConnectionStrings"
Rigenerare le chiavi dell'account
Le chiavi di accesso a un account Azure Cosmos DB devono essere rigenerate periodicamente per garantire la sicurezza delle connessioni. All'account sono assegnate una chiave di accesso primaria e una secondaria. In questo modo i client possono mantenere l'accesso quando una delle chiavi viene rigenerata. Esistono quattro tipi di chiavi per un account Azure Cosmos DB: Primary, Secondary, PrimaryReadonly e 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
Abilitare il failover gestito dal servizio
Il comando seguente imposta un account Azure Cosmos DB per eseguire un failover gestito dal servizio nell'area secondaria in caso di mancata disponibilità dell'area primaria.
$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
Modificare la priorità di failover
Per gli account configurati con failover gestito dal servizio, è possibile cambiare l'ordine in cui Azure Cosmos DB alzerà di livello le repliche secondarie a primarie nel caso quelle primarie diventassero indisponibili.
Per l'esempio seguente, si supponga che la priorità di failover corrente sia West US = 0
, East US = 1
, South Central US = 2
. Il comando la modificherà impostandola su West US = 0
, South Central US = 1
, East US = 2
.
Attenzione
La modifica della località per failoverPriority=0
attiverà un failover manuale per un account Azure Cosmos DB. Qualsiasi altra modifica della priorità non attiverà un 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
Attivare un failover manuale
Per gli account configurati con failover manuale, è possibile eseguire il failover e alzare di livello qualsiasi replica secondaria a primaria modificando failoverPriority=0
. Questa operazione può essere usata per avviare un'esercitazione sul ripristino di emergenza per testarne la pianificazione.
Per l'esempio seguente, si presuppone che l'account abbia la priorità di failover corrente impostata su West US = 0
e East US = 1
e che le aree vengano invertite.
Attenzione
La modifica di locationName
per failoverPriority=0
attiverà un failover manuale per un account Azure Cosmos DB. Qualsiasi altra modifica della priorità non attiverà un failover.
Nota
Se si esegue un'operazione di failover manuale mentre è in corso un'operazione asincrona di ridimensionamento della velocità effettiva, l'operazione di aumento della velocità effettiva verrà sospesa. Riprenderà automaticamente al termine dell'operazione di failover.
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$locations = @("East US", "West US") # Regions ordered by UPDATED failover priority
Update-AzCosmosDBAccountFailoverPriority `
-ResourceGroupName $resourceGroupName `
-Name $accountName `
-FailoverPolicy $locations
Elencare i blocchi delle risorse in un account Azure Cosmos DB
È possibile inserire blocchi delle risorse per le risorse di Azure Cosmos DB, inclusi database e raccolte. L'esempio seguente mostra come elencare tutti i blocchi delle risorse di Azure in un account Azure Cosmos DB.
$resourceGroupName = "myResourceGroup"
$resourceTypeAccount = "Microsoft.DocumentDB/databaseAccounts"
$accountName = "mycosmosaccount"
Get-AzResourceLock `
-ResourceGroupName $resourceGroupName `
-ResourceType $resourceTypeAccount `
-ResourceName $accountName
Database Azure Cosmos DB
Le sezioni seguenti illustrano come gestire il database Azure Cosmos DB:
- Creare un database Azure Cosmos DB
- Creare un database Azure Cosmos DB con unità elaborate condivise
- Ottenere le unità elaborate di un database Azure Cosmos DB
- Eseguire la migrazione della velocità effettiva del database alla scalabilità automatica
- Elencare tutti i database Azure Cosmos DB in un account
- Ottenere un singolo database Azure Cosmos DB
- Eliminare un database Azure Cosmos DB
- Creare un blocco delle risorsa per un database Azure Cosmos DB per evitare l'eliminazione
- Rimuovere un blocco delle risorse per un database Azure Cosmos DB
Creare un database Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Creare un database Azure Cosmos DB con unità elaborate condivise
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$databaseRUs = 400
New-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-Throughput $databaseRUs
Ottenere le unità elaborate di un database Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabaseThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Eseguire la migrazione della velocità effettiva del database alla scalabilità automatica
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Invoke-AzCosmosDBSqlDatabaseThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName `
-ThroughputType Autoscale
Ottenere tutti i database Azure Cosmos DB in un account
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName
Ottenere un singolo database Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Eliminare un database Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Remove-AzCosmosDBSqlDatabase `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-Name $databaseName
Creare un blocco delle risorsa per un database Azure Cosmos DB per evitare l'eliminazione
$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
Rimuovere un blocco delle risorse per un database 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
Contenitore di Azure Cosmos DB
Le sezioni seguenti illustrano come gestire il contenitore Azure Cosmos DB:
- Creare un contenitore Azure Cosmos DB
- Creare un contenitore Azure Cosmos DB con scalabilità automatica
- Creare un contenitore Azure Cosmos DB con una chiave di partizione di grandi dimensioni
- Ottenere le unità elaborate di un contenitore Azure Cosmos DB
- Eseguire la migrazione della velocità effettiva del contenitore alla scalabilità automatica
- Creare un contenitore Azure Cosmos DB con indicizzazione personalizzata
- Creare un contenitore Azure Cosmos DB con indicizzazione disattivata
- Creare un contenitore Azure Cosmos DB con chiave univoca e TTL
- Creare un contenitore Azure Cosmos DB con risoluzione dei conflitti
- Elencare tutti i contenitori Azure Cosmos DB in un database
- Ottenere un singolo contenitore Azure Cosmos DB in un database
- Eliminare un contenitore Azure Cosmos DB
- Creare un blocco delle risorse per un contenitore Azure Cosmos DB per impedire l'eliminazione
- Rimuovere un blocco delle risorse per un contenitore Azure Cosmos DB
Creare un contenitore 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
Creare un contenitore Azure Cosmos DB con scalabilità automatica
# 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
Creare un contenitore Azure Cosmos DB con una chiave di partizione di grandi dimensioni
# 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
Ottenere le unità elaborate di un contenitore Azure Cosmos DB
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Get-AzCosmosDBSqlContainerThroughput `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName
Eseguire la migrazione della velocità effettiva del contenitore alla scalabilità automatica
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
$containerName = "myContainer"
Invoke-AzCosmosDBSqlContainerThroughputMigration `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName `
-Name $containerName `
-ThroughputType Autoscale
Creare un contenitore Azure Cosmos DB con un criterio di indicizzazione personalizzato
# 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
Creare un contenitore Azure Cosmos DB con indicizzazione disattivata
# 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
Creare un contenitore Azure Cosmos DB con chiave univoca 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
Creare un contenitore Azure Cosmos DB con risoluzione dei conflitti
Per scrivere tutti i conflitti in ConflictsFeed e gestirli separatamente, passare -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
Per creare un criterio di risoluzione dei conflitti per l'uso di una stored procedure, chiamare New-AzCosmosDBSqlConflictResolutionPolicy
e passare i parametri -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
Elencare tutti i contenitori Azure Cosmos DB in un database
# List all Azure Cosmos DB containers in a database
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$databaseName = "myDatabase"
Get-AzCosmosDBSqlContainer `
-ResourceGroupName $resourceGroupName `
-AccountName $accountName `
-DatabaseName $databaseName
Ottenere un singolo contenitore Azure Cosmos DB in un database
# 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
Eliminare un contenitore 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
Creare un blocco delle risorse per un contenitore Azure Cosmos DB per impedire l'eliminazione
$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
Rimuovere un blocco delle risorse per un contenitore 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