Usare l'interfaccia della riga di comando di Azure per le operazioni di blocco delle risorse nelle tabelle Azure Cosmos DB for Table
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 proprietà disableKeyBasedMetadataWriteAccess
abilitata. Questa proprietà impedisce modifiche alle risorse dai client che si connettono tramite chiavi dell'account, ad esempio Azure Cosmos DB Table SDK, Azure Storage Table SDK o il portale di Azure.
Prerequisiti
Sono necessari un account Azure Cosmos DB for Table, un database e una tabella creata. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Importante
Per creare o eliminare blocchi delle risorse, è necessario avere il ruolo Proprietario nella sottoscrizione di Azure.
Questo script richiede l'interfaccia della riga di comando di Azure 2.12.1 o versione 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 include già la versione più recente dell'interfaccia della riga di comando di Azure.
L'autenticazione di Cloud Shell viene eseguita 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. Per l'esecuzione in 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 for Table. Lo script richiede resourceGroup
, il nome account
e il nome table
per l'account e la tabella di Azure Cosmos DB creati.
- az lock create crea un blocco di risorse
CanNotDelete
nella tabella. - az lock list elenca tutte le informazioni di blocco per l'account di Azure Cosmos DB Table.
- az lock delete usa az lock show per ottenere il
id
del blocco nella tabella e quindi usa la proprietàlockid
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 sull'interfaccia della riga di comando di Azure Cosmos DB
- Repository GitHub per l'interfaccia della riga di comando di Azure Cosmos DB