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änderlockid
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