Operazioni di velocità effettiva (UR/sec) con l'interfaccia della riga di comando di Azure per un database o contenitore per Azure Cosmos DB for NoSQL
SI APPLICA A: NoSQL
Lo script in questo articolo crea un'API per il database NoSQL con velocità effettiva condivisa e un contenitore API per NoSQL con velocità effettiva dedicata, quindi aggiorna la velocità effettiva sia per il database che per il contenitore. Lo script esegue quindi la migrazione dalla velocità effettiva standard alla velocità effettiva con scalabilità automatica e, al termine della migrazione, legge il valore della velocità effettiva con scalabilità automatica.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Questo articolo richiede la versione 2.12.1 o successiva dell'interfaccia della riga di comando di Azure. Se si usa Azure Cloud Shell, la versione più recente è già installata.
Script di esempio
Avviare Azure Cloud Shell
Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.
Per aprire Cloud Shell, basta selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile avviare Cloud Shell in una scheda separata del browser visitando https://shell.azure.com.
Quando si apre Cloud Shell, verificare che sia selezionato Bash per l'ambiente. Le sessioni successive useranno l'interfaccia della riga di comando di Azure in un ambiente Bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.
Accedere ad Azure
Cloud Shell viene autenticato automaticamente con l'account iniziale con cui è stato eseguito l'accesso. Usare lo script seguente per accedere usando una sottoscrizione diversa, sostituendo <Subscription ID>
con l'ID sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Per altre informazioni, vedere Impostare la sottoscrizione attiva oppure Accedere in modo interattivo
Eseguire lo script
# Throughput operations for a SQL API database and container
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-cosmosdb-rg-$randomIdentifier"
tag="throughput-sql-cosmosdb"
account="msdocs-account-cosmos-$randomIdentifier" #needs to be lower case
database="msdocs-db-sql-cosmos"
container="container1"
partitionKey="/partitionKey"
originalThroughput=400
updateThroughput=500
# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag
# Create a Cosmos account for SQL API
echo "Creating $account"
az cosmosdb create --name $account --resource-group $resourceGroup
# Create a SQL API database
echo "Creating $database with $originalThroughput"
az cosmosdb sql database create --account-name $account --resource-group $resourceGroup --name $database --throughput $originalThroughput
# Create a SQL API container
echo "Creating $container with $maxThroughput"
az cosmosdb sql container create --account-name $account --resource-group $resourceGroup --database-name $database --name $container --partition-key-path $partitionKey --throughput $originalThroughput
# Throughput operations for SQL API database
# Read the current throughput
# Read the minimum throughput
# Make sure the updated throughput is not less than the minimum
# Update the throughput
# Migrate between standard (manual) and autoscale throughput
# Read the autoscale max throughput
# Retrieve the current provisioned database throughput
az cosmosdb sql database throughput show --resource-group $resourceGroup --account-name $account --name $database --query resource.throughput -o tsv
# Retrieve the minimum allowable database throughput
minimumThroughput=$(az cosmosdb sql database throughput show --resource-group $resourceGroup --account-name $account --name $database --query resource.minimumThroughput -o tsv)
echo $minimumThroughput
# Make sure the updated throughput is not less than the minimum allowed throughput
if [ $updateThroughput -lt $minimumThroughput ]; then
updateThroughput=$minimumThroughput
fi
# Update database throughput
echo "Updating $database throughput to $updateThroughput"
az cosmosdb sql database throughput update --account-name $account --resource-group $resourceGroup --name $database --throughput $updateThroughput
# Migrate the database from standard (manual) throughput to autoscale throughput
az cosmosdb sql database throughput migrate --account-name $account --resource-group $resourceGroup --name $database --throughput-type "autoscale"
# Retrieve current autoscale provisioned max database throughput
az cosmosdb sql database throughput show --account-name $account --resource-group $resourceGroup --name $database --query resource.autoscaleSettings.maxThroughput -o tsv
# Throughput operations for SQL API container
# Read the current throughput
# Read the minimum throughput
# Make sure the updated throughput is not less than the minimum
# Update the throughput
# Migrate between standard (manual) and autoscale throughput
# Read the autoscale max throughput
# Retrieve the current provisioned container throughput
az cosmosdb sql container throughput show --account-name $account --resource-group $resourceGroup --database-name $database --name $container --query resource.throughput -o tsv
# Retrieve the minimum allowable container throughput
minimumThroughput=$(az cosmosdb sql container throughput show --account-name $account --resource-group $resourceGroup --database-name $database --name $container --query resource.minimumThroughput -o tsv)
echo $minimumThroughput
# Make sure the updated throughput is not less than the minimum allowed throughput
if [ $updateThroughput -lt $minimumThroughput ]; then
updateThroughput=$minimumThroughput
fi
# Update container throughput
echo "Updating $container throughput to $updateThroughput"
az cosmosdb sql container throughput update --account-name $account --resource-group $resourceGroup --database-name $database --name $container --throughput $updateThroughput
# Migrate the container from standard (manual) throughput to autoscale throughput
az cosmosdb sql container throughput migrate --account-name $account --resource-group $resourceGroup --database-name $database --name $container --throughput "autoscale"
# Retrieve the current autoscale provisioned max container throughput
az cosmosdb sql container throughput show --account-name $account --resource-group $resourceGroup --database-name $database --name $container --query resource.autoscaleSettings.maxThroughput -o tsv
Pulire le risorse
Usare il seguente comando per rimuovere il gruppo di risorse e tutte le risorse associate usando il comando az group delete, a meno che non si abbia una necessità continua di queste risorse. La creazione e l'eliminazione di alcune di queste risorse può richiedere tempo.
az group delete --name $resourceGroup
Informazioni di riferimento per l'esempio
Questo script usa i comandi seguenti. Ogni comando della tabella include collegamenti alla documentazione specifica del comando.
Comando | Note |
---|---|
az group create | Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse. |
az cosmosdb create | Crea un account Azure Cosmos DB. |
az cosmosdb sql database create | Crea un database Azure Cosmos DB for NoSQL. |
az cosmosdb sql container create | Crea un contenitore Azure Cosmos DB for NoSQL. |
az cosmosdb sql database throughput update | Aggiornare la velocità effettiva per un database Azure Cosmos DB for NoSQL. |
az cosmosdb sql container throughput update | Aggiornare la velocità effettiva per un contenitore Azure Cosmos DB for NoSQL. |
az cosmosdb sql database throughput migrate | Esegue la migrazione della velocità effettiva per un database Azure Cosmos DB for NoSQL. |
az cosmosdb sql container throughput migrate | Esegue la migrazione della velocità effettiva per un contenitore Azure Cosmos DB for NoSQL. |
az group delete | Consente di eliminare un gruppo di risorse incluse tutte le risorse annidate. |
Passaggi successivi
Per altre informazioni sull'interfaccia della riga di comando di Azure Cosmos DB, vedere la relativa documentazione.