Utiliser Azure CLI pour les opérations de verrouillage de ressources sur des tables Azure Cosmos DB for Table

S’APPLIQUE À : Table

Le script de cet article montre comment effectuer des opérations de verrouillage des ressources dans une table à l’aide de l’API pour Table.

Important

Pour activer le verrouillage des ressources, la propriété disableKeyBasedMetadataWriteAccess doit être activée pour le compte Azure Cosmos DB. Cette propriété empêche les modifications apportées aux ressources des clients qui se connectent par le biais de clés de compte, telles que le Kit de développement logiciel (SDK) Azure Cosmos DB Table, le SDK Azure Storage Table ou le Portail Azure.

Prérequis

  • Vous avez besoin d’un compte, d’une base de données et d’une table Azure Cosmos DB for Table préalablement créés. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

    Important

    Pour créer ou supprimer des verrous de ressources, vous devez disposer du rôle Propriétaire dans votre abonnement Azure.

  • Ce script requiert Azure CLI version 2.12.1 ou ultérieure.

    • Vous pouvez exécuter le script dans l’environnement Bash dans Azure Cloud Shell. Lorsque Cloud Shell s’ouvre, assurez-vous que Bash figure dans le champ d’environnement en haut à gauche de la fenêtre du shell. Cloud Shell dispose toujours de la dernière version d'Azure CLI.

      Cloud Shell est authentifié automatiquement sous le compte avec lequel vous aviez l’habitude de vous connecter au Portail Azure. Vous pouvez utiliser az account set pour vous connecter avec un autre abonnement, en remplaçant <subscriptionId> par votre ID d’abonnement Azure.

      subscription="<subscriptionId>" # add subscription here
      
      az account set -s $subscription # ...or use 'az login'
      
    • Si vous préférez, vous pouvez installer Azure CLI pour exécuter le script localement. Exécutez az version pour rechercher votre version d’Azure CLI et les bibliothèques dépendantes installées, et exécutez az upgrade si vous devez effectuer une mise à niveau. Si vous y êtes invité, installez les extensions Azure CLI. Si vous exécutez Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker.

      Si vous utilisez une installation locale, connectez-vous à Azure à l’aide de la commande az login et suivez les invites. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.

Exemple de script

Le script suivant utilise des commandes az lock d’Azure CLI pour manipuler des verrous de ressources sur votre table Azure Cosmos DB for Table. Le script a besoin des noms resourceGroup, account et table du compte et de la table Azure Cosmos DB que vous avez créés.

  • az lock create crée un verrou de ressource CanNotDelete sur la table.
  • az lock list répertorie toutes les informations de verrouillage de votre compte Azure Cosmos DB Table.
  • az lock delete utilise az lock show pour obtenir le id du verrou sur votre table, puis utilise la propriété lockid pour supprimer le verrou.
# 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

Nettoyer les ressources

Si vous n’avez plus besoin des ressources que vous avez créées, utilisez la commande az group delete pour supprimer le groupe de ressources et toutes les ressources qu’il contient. Ces ressources incluent le compte et la table Azure Cosmos DB. Les ressources peuvent prendre un certain temps à supprimer.

az group delete --name $resourceGroup

Étapes suivantes