Creare un database e una raccolta per Azure Cosmos DB - API per MongoDB
SI APPLICA A: MongoDB
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.
Questo esempio richiede Azure PowerShell Az 5.4.0 o versioni successive. Eseguire Get-Module -ListAvailable Az
per determinare le versioni installate.
Se è necessario installarlo, vedere Installare il modulo Azure PowerShell.
Eseguire Connect-AzAccount per accedere ad Azure.
Script di esempio
# Reference: Az.CosmosDB | https://docs.microsoft.com/powershell/module/az.cosmosdb
# --------------------------------------------------
# Purpose
# Create Cosmos MongoDB API account with automatic failover,
# a database, and a collection with dedicated throughput.
# --------------------------------------------------
Function New-RandomString{Param ([Int]$Length = 10) return $(-join ((97..122) + (48..57) | Get-Random -Count $Length | ForEach-Object {[char]$_}))}
# --------------------------------------------------
$uniqueId = New-RandomString -Length 7 # Random alphanumeric string for unique resource names
$apiKind = "MongoDB"
# --------------------------------------------------
# Variables - ***** SUBSTITUTE YOUR VALUES *****
$locations = @()
$locations += New-AzCosmosDBLocationObject -LocationName "East Us" -FailoverPriority 0 -IsZoneRedundant 0
$locations += New-AzCosmosDBLocationObject -LocationName "West Us" -FailoverPriority 1 -IsZoneRedundant 0
$resourceGroupName = "myResourceGroup" # Resource Group must already exist
$accountName = "cosmos-$uniqueId" # Must be all lower case
$serverVersion = "4.2" #3.2, 3.6, 4.0, or 4.2
$consistencyLevel = "Session"
$tags = @{Tag1 = "MyTag1"; Tag2 = "MyTag2"; Tag3 = "MyTag3"}
$databaseName = "myDatabase"
$collectionName = "myCollection"
$collectionRUs = 400
$shardKey = "user_id"
$partitionKeys = @("user_id", "user_address")
$ttlKeys = @("_ts")
$ttlInSeconds = 604800
# --------------------------------------------------
Write-Host "Creating account $accountName"
$account = New-AzCosmosDBAccount -ResourceGroupName $resourceGroupName `
-LocationObject $locations -Name $accountName -ApiKind $apiKind -Tag $tags `
-DefaultConsistencyLevel $consistencyLevel `
-EnableAutomaticFailover:$true -ServerVersion $serverVersion
Write-Host "Creating database $databaseName"
$database = New-AzCosmosDBMongoDBDatabase -ParentObject $account `
-Name $databaseName
$index1 = New-AzCosmosDBMongoDBIndex -Key $partitionKeys -Unique $true
$index2 = New-AzCosmosDBMongoDBIndex -Key $ttlKeys -TtlInSeconds $ttlInSeconds
$indexes = @($index1, $index2)
Write-Host "Creating collection $collectionName"
$collection = New-AzCosmosDBMongoDBCollection -ParentObject $database `
-Name $collectionName -Throughput $collectionRUs `
-Shard $shardKey -Index $indexes
Pulire la distribuzione
Dopo l'esecuzione dello script di esempio, è possibile usare il comando seguente per rimuovere il gruppo di risorse e tutte le risorse ad esso associate.
Remove-AzResourceGroup -ResourceGroupName "myResourceGroup"
Spiegazione dello script
Questo script usa i comandi seguenti. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.
Comando | Note |
---|---|
Azure Cosmos DB | |
New-AzCosmosDBAccount | Crea un account Azure Cosmos DB. |
New-AzCosmosDBMongoDBDatabase | Crea un'API per il database MongoDB. |
New-AzCosmosDBMongoDBIndex | Crea un'API per l'indice MongoDB. |
New-AzCosmosDBMongoDBCollection | Crea un'API per la raccolta MongoDB. |
Gruppi di risorse di Azure | |
Remove-AzResourceGroup | Consente di eliminare un gruppo di risorse incluse tutte le risorse annidate. |
Passaggi successivi
Per altre informazioni su Azure PowerShell, vedere la documentazione di Azure PowerShell.