Usare l'interfaccia della riga di comando di Azure per le operazioni di blocco delle risorse in Azure Cosmos DB per le tabelle
SI APPLICA A: Tabella
Lo script di questo articolo illustra l'esecuzione di operazioni di blocco delle risorse per un'API per la tabella Table.
Importante
Per abilitare il blocco delle risorse, l'account Azure Cosmos DB deve avere la disableKeyBasedMetadataWriteAccess
proprietà abilitata. Questa proprietà impedisce le modifiche apportate alle risorse dai client che si connettono tramite chiavi dell'account, ad esempio Azure Cosmos DB Table SDK, Archiviazione di Azure Table SDK o portale di Azure. Per altre informazioni, vedere Prevenzione delle modifiche dagli SDK.
Prerequisiti
È necessario creare un account, un database e una tabella di Azure Cosmos DB per tabelle. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Importante
Per creare o eliminare blocchi di risorse, è necessario avere il ruolo Proprietario nella sottoscrizione di Azure.
Questo script richiede l'interfaccia della riga di comando di Azure versione 2.12.1 o successiva.
È possibile eseguire lo script nell'ambiente Bash in Azure Cloud Shell. Quando si apre Cloud Shell, assicurarsi che Bash venga visualizzato nel campo ambiente in alto a sinistra della finestra della shell. Cloud Shell ha sempre la versione più recente dell'interfaccia della riga di comando di Azure.
Cloud Shell viene autenticato automaticamente con l'account usato per accedere al portale di Azure. È possibile usare az account set per accedere con una sottoscrizione diversa, sostituendo
<subscriptionId>
con l'ID sottoscrizione di Azure.subscription="<subscriptionId>" # add subscription here az account set -s $subscription # ...or use 'az login'
Se si preferisce, è possibile installare l'interfaccia della riga di comando di Azure per eseguire lo script in locale. Eseguire az version per trovare la versione dell'interfaccia della riga di comando di Azure e le librerie dipendenti installate ed eseguire az upgrade se è necessario eseguire l'aggiornamento. Se richiesto, installare le estensioni dell'interfaccia della riga di comando di Azure. Se si esegue Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere ad Azure eseguendo az login e seguendo le istruzioni. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Script di esempio
Lo script seguente usa i comandi az lock dell'interfaccia della riga di comando di Azure per modificare i blocchi delle risorse nella tabella di Azure Cosmos DB per tabelle. Lo script richiede il resourceGroup
nome , account
il nome e table
il nome per l'account e la tabella di Azure Cosmos DB creati.
- az lock create crea un
CanNotDelete
blocco di risorse nella tabella. - az lock list elenca tutte le informazioni di blocco per l'account tabella di Azure Cosmos DB.
- az lock delete usa az lock show per ottenere il
id
blocco nella tabella e quindi usa lalockid
proprietà per eliminare il blocco.
# Resource lock operations for a Table API table
# Subscription owner permissions required for this script
# Run this script after running
# "https://docs.microsoft.com/azure/cosmos-db/scripts/cli/table/create#sample-script"
# Variable block
# Use values from prerequisite script or from your environment
# resourceGroup="your resource group name"
# account="your account name"
# table="your table name"
lockType='CanNotDelete' # CanNotDelete or ReadOnly
tableParent="databaseAccounts/$account"
tableResourceType="Microsoft.DocumentDB/tables"
tableLock='$table-Lock'
# Create a delete lock on table
echo "Creating $lockType lock on $table"
az lock create --name $tableLock --resource-group $resourceGroup --resource-type $tableResourceType --lock-type $lockType --parent $tableParent --resource $table
# List all locks on a Cosmos account
echo "Listing locks on $account"
az lock list --resource-group $resourceGroup --resource-name $account --namespace Microsoft.DocumentDB --resource-type databaseAccounts
# Delete lock on table
echo "Deleting $tableLock on $table"
lockid=$(az lock show --name $tableLock --resource-group $resourceGroup --resource-type $tableResourceType --resource $table --parent $tableParent --output tsv --query id)
az lock delete --ids $lockid
Pulire le risorse
Se le risorse create non sono più necessarie, usare il comando az group delete per eliminare il gruppo di risorse e tutte le risorse in esso contenute. Queste risorse includono l'account e la tabella di Azure Cosmos DB. L'eliminazione delle risorse potrebbe richiedere alcuni minuti.
az group delete --name $resourceGroup
Passaggi successivi
- Impedire l'eliminazione o la modifica delle risorse di Azure Cosmos DB
- Bloccare le risorse per impedire modifiche impreviste
- Come controllare le operazioni del piano di controllo di Azure Cosmos DB
- Documentazione dell'interfaccia della riga di comando di Azure Cosmos DB
- Repository GitHub dell'interfaccia della riga di comando di Azure Cosmos DB