Dela via


Använda Azure CLI för resurslåsningsåtgärder i Azure Cosmos DB för tabelltabeller

GÄLLER FÖR: Bord

Skriptet i den här artikeln visar hur du utför resurslåsåtgärder för ett API för tabelltabellen.

Viktigt!

För att aktivera resurslåsning måste Azure Cosmos DB-kontot ha disableKeyBasedMetadataWriteAccess egenskapen aktiverad. Den här egenskapen förhindrar ändringar av resurser från klienter som ansluter via kontonycklar, till exempel Azure Cosmos DB Table SDK, Azure Storage Table SDK eller Azure Portal.

Förutsättningar

  • Du behöver en Azure Cosmos DB för tabellkonto, databas och tabell som skapats. Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

    Viktigt!

    Om du vill skapa eller ta bort resurslås måste du ha rollen Ägare i din Azure-prenumeration.

  • Det här skriptet kräver Azure CLI version 2.12.1 eller senare.

    • Du kan köra skriptet i Bash-miljön i Azure Cloud Shell. När Cloud Shell öppnas kontrollerar du att Bash visas i miljöfältet längst upp till vänster i gränssnittsfönstret. Cloud Shell har alltid den senaste versionen av Azure CLI.

      Cloud Shell autentiseras automatiskt under det konto som du använde för att logga in på Azure Portal. Du kan använda az account set för att logga in med en annan prenumeration och ersätta <subscriptionId> med ditt Azure-prenumerations-ID.

      subscription="<subscriptionId>" # add subscription here
      
      az account set -s $subscription # ...or use 'az login'
      
    • Om du vill kan du installera Azure CLI för att köra skriptet lokalt. Kör az version för att hitta Den Azure CLI-version och beroende bibliotek som är installerade och kör az upgrade om du behöver uppgradera. Installera Azure CLI-tillägg om du uppmanas till det. Om du kör Windows eller macOS kan du överväga att köra Azure CLI i en Docker-container.

      Om du använder en lokal installation loggar du in på Azure genom att köra az login och följa anvisningarna. Andra inloggningsalternativ finns i Logga in med Azure CLI.

Exempelskript

Följande skript använder Azure CLI az lock-kommandon för att ändra resurslås i din Azure Cosmos DB för tabell. Skriptet behöver resourceGroup, account namn och table namn för Det Azure Cosmos DB-konto och den tabell som du skapade.

  • az lock create skapar ett CanNotDelete resurslås i tabellen.
  • az lock list list list all låsinformation för ditt Azure Cosmos DB Table-konto.
  • az lock delete använder az lock show för att hämta id låset på tabellen och använder lockid sedan egenskapen för att ta bort låset.
# 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

Rensa resurser

Om du inte längre behöver de resurser som du har skapat använder du kommandot az group delete för att ta bort resursgruppen och alla resurser som den innehåller. Dessa resurser omfattar Azure Cosmos DB-kontot och tabellen. Det kan ta en stund att ta bort resurserna.

az group delete --name $resourceGroup

Nästa steg