Share via


Verwenden der Azure CLI für Ressourcensperrvorgänge in Azure Cosmos DB for Table-Tabellen

GILT FÜR: Tabelle

Das Skript in diesem Artikel veranschaulicht das Ausführen von Ressourcensperrvorgängen für eine API für Table-Tabelle.

Wichtig

Um die Ressourcensperre zu aktivieren, muss die disableKeyBasedMetadataWriteAccess Eigenschaft für das Azure Cosmos DB-Konto aktiviert sein. Diese Eigenschaft verhindert Änderungen an Ressourcen von Clients, die Kontoschlüssel für die Verbindung verwenden, z. B. das Azure Cosmos DB-Table-SDK, das Azure Storage-Table-SDK oder das Azure-Portal. Weitere Informationen finden Sie unter Verhindern von Änderungen von SDKs.

Voraussetzungen

  • Sie benötigen ein Azure Cosmos DB for Table-Konto, eine Datenbank und eine Tabelle. Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.

    Wichtig

    Um Ressourcensperren zu erstellen oder zu löschen, müssen Sie über die Rolle Besitzer in Ihrem Azure-Abonnement verfügen.

  • Das Skript benötigt Azure CLI, Version 2.12.1 oder höher.

    • Sie können das Skript in der Bash-Umgebung in Azure Cloud Shell ausführen. Achten Sie beim Öffnen von Cloud Shell darauf, dass Bash im Feld oben links im Shellfenster als Umgebung angezeigt wird. Cloud Shell verfügt immer über die neueste Version von Azure CLI.

      Cloud Shell wird automatisch unter dem Konto authentifiziert, mit dem Sie sich beim Azure-Portal angemeldet haben. Sie können az account set verwenden, um sich mit einem anderen Abonnement anzumelden, indem Sie <subscriptionId> durch die Azure-Abonnement-ID ersetzen.

      subscription="<subscriptionId>" # add subscription here
      
      az account set -s $subscription # ...or use 'az login'
      
    • Sie können ggf. auch Azure CLI installieren, um das Skript lokal auszuführen. Führen Sie az version aus, um die Azure CLI-Version und die installierten abhängigen Bibliotheken zu ermitteln, und führen Sie az upgrade aus, wenn Sie ein Upgrade durchführen müssen. Installieren Sie die Azure CLI-Erweiterungen, wenn Sie dazu aufgefordert werden. Wenn Sie unter Windows oder macOS arbeiten, sollten Sie die Azure CLI in einem Docker-Container ausführen.

      Melden Sie sich bei Verwendung einer lokalen Installation bei Azure an, indem Sie az login eingeben und den Eingabeaufforderungen folgen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.

Beispielskript

Das folgende Skript verwendet az lock-Befehle der Azure CLI, um Ressourcensperren in Azure Cosmos DB for Table-Tabelle zu bearbeiten. Das Skript benötigt die resourceGroup, den account-Namen und den table-Namen für das Azure Cosmos DB-Konto und die erstellte Tabelle.

  • az lock create erstellt eine CanNotDelete-Ressourcensperre für die Tabelle.
  • az lock list listet Informationen zu allen Sperren für Ihr Azure Cosmos DB-Tabellenkonto auf.
  • az lock delete verwendet az lock show, um die id der Sperre in der Tabelle abzurufen, und dann die lockid-Eigenschaft, um die Sperre zu löschen.
# 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

Bereinigen von Ressourcen

Verwenden Sie den Befehl az group delete, um die Ressourcengruppe und alle darin enthaltenen Ressourcen zu löschen, wenn Sie die erstellten Ressourcen nicht mehr benötigen. Diese Ressourcen umfassen das Azure Cosmos DB-Konto und die Tabelle. Das Löschen der Ressourcen kann eine Weile dauern.

az group delete --name $resourceGroup

Nächste Schritte