Delen via


Azure CLI gebruiken voor resourcevergrendelingsbewerkingen in Azure Cosmos DB voor tabeltabellen

VAN TOEPASSING OP: Tafel

Het script in dit artikel laat zien hoe u resourcevergrendelingsbewerkingen uitvoert voor een API voor tabeltabel.

Belangrijk

Als u resourcevergrendeling wilt inschakelen, moet voor het Azure Cosmos DB-account de disableKeyBasedMetadataWriteAccess eigenschap zijn ingeschakeld. Met deze eigenschap voorkomt u wijzigingen in resources van clients die verbinding maken via accountsleutels, zoals de Azure Cosmos DB Table SDK, Azure Storage Table SDK of Azure Portal. Zie Voorkomen van wijzigingen van SDK's voor meer informatie.

Vereisten

  • U hebt een Azure Cosmos DB voor tabelaccount, -database en - tabel nodig. Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.

    Belangrijk

    Als u resourcevergrendelingen wilt maken of verwijderen, moet u de rol Eigenaar hebben in uw Azure-abonnement.

  • Voor dit script is Azure CLI versie 2.12.1 of hoger vereist.

    • U kunt het script uitvoeren in de Bash-omgeving in Azure Cloud Shell. Wanneer Cloud Shell wordt geopend, controleert u of Bash wordt weergegeven in het omgevingsveld linksboven in het shell-venster. Cloud Shell heeft altijd de nieuwste versie van Azure CLI.

      Cloud Shell wordt automatisch geverifieerd onder het account dat u hebt gebruikt om u aan te melden bij Azure Portal. U kunt az account set gebruiken om u aan te melden met een ander abonnement, waarbij u uw Azure-abonnements-id <subscriptionId> vervangt.

      subscription="<subscriptionId>" # add subscription here
      
      az account set -s $subscription # ...or use 'az login'
      
    • Als u wilt, kunt u Azure CLI installeren om het script lokaal uit te voeren. Voer az version uit om de Azure CLI-versie en afhankelijke bibliotheken te vinden die zijn geïnstalleerd en voer az upgrade uit als u een upgrade wilt uitvoeren. Als u hierom wordt gevraagd, installeert u Azure CLI-extensies. Als u Windows of macOS gebruikt, kunt u Overwegen Om Azure CLI uit te voeren in een Docker-container.

      Als u een lokale installatie gebruikt, meldt u zich aan bij Azure door az login uit te voeren en de aanwijzingen te volgen. Raadpleeg Aanmelden bij Azure CLI voor aanvullende aanmeldingsopties.

Voorbeeldscript

Het volgende script maakt gebruik van Azure CLI az lock-opdrachten voor het bewerken van resourcevergrendelingen in uw Azure Cosmos DB for Table-tabel. Het script heeft de resourceGroup, account naam en table naam nodig voor het Azure Cosmos DB-account en de tabel die u hebt gemaakt.

# 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

Resources opschonen

Als u de resources die u hebt gemaakt niet meer nodig hebt, gebruikt u de opdracht az group delete om de resourcegroep en alle resources die deze bevat te verwijderen. Deze resources omvatten het Azure Cosmos DB-account en de tabel. Het kan even duren voordat de resources zijn verwijderd.

az group delete --name $resourceGroup

Volgende stappen