Compartir por


Uso de la CLI de Azure para operaciones de bloqueo de recursos en tablas de Azure Cosmos DB for Table

SE APLICA A: Table

En el script de este artículo, se muestra cómo realizar operaciones de bloqueo de recursos para una tabla de API for Table.

Importante

Para habilitar el bloqueo de recursos, la cuenta de Azure Cosmos DB que vaya a usar deberá tener habilitada la propiedad disableKeyBasedMetadataWriteAccess. Esta propiedad impide que los clientes que se conecten mediante claves de cuenta apliquen cambios en los recursos.Algunos ejemplos de este tipo de clientes son el SDK de Azure Cosmos DB Table, el SDK de Table de Azure Storage o Azure Portal. Para obtener más información, consulte Bloqueo de cambios procedentes de SDK.

Requisitos previos

  • Necesitará haber creado una cuenta, base de datos y tabla de Azure Cosmos DB for Table. Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

    Importante

    Para crear o eliminar bloqueos de recursos, deberá tener el rol Propietario en la suscripción de Azure.

  • Este script requiere la versión 2.12.1 de la CLI de Azure, o cualquier versión posterior.

    • Puede ejecutar el script en el entorno de Bash en Azure Cloud Shell. Cuando se abra Cloud Shell, asegúrese de que Bash aparezca en el campo de entorno, ubicado en la parte superior izquierda de la ventana de shell. El servicio Cloud Shell siempre dispone de la versión más reciente de la CLI de Azure.

      Cloud Shell se autenticará automáticamente con la cuenta que haya utilizado para iniciar sesión en Azure Portal. No obstante, puede usar el comando az account set para iniciar sesión con otra suscripción, reemplazando el valor <subscriptionId> por el id. de suscripción de Azure.

      subscription="<subscriptionId>" # add subscription here
      
      az account set -s $subscription # ...or use 'az login'
      
    • Si lo prefiere, puede instalar la CLI de Azure para ejecutar el script localmente. Ejecute el comando az version para visualizar la versión de la CLI de Azure y las librerías dependientes de esta que tiene instaladas y, después, ejecute az upgrade si necesita actualizarlas. Si se le solicita, instale las extensiones de la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker.

      Si está usando una instalación local, ejecute el comando az login y siga las solicitudes que se mostrarán para iniciar sesión en Azure. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.

Script de ejemplo

El siguiente script usa comandos az lock de la CLI de Azure para manipular bloqueos de recursos en la tabla de Azure Cosmos DB for Table. El script necesita el nombre de los elementos resourceGroup, account y table correspondientes con la cuenta y la tabla de Azure Cosmos DB que ha creado.

  • El comando az lock create crea un bloqueo de recursos de tipo CanNotDelete en la tabla.
  • El comando az lock list enumera toda la información de bloqueo de la cuenta de Table de Azure Cosmos DB.
  • El comando az lock delete usa el comando az lock show para obtener el id del bloqueo de la tabla y, a continuación, usa la propiedad lockid para eliminarlo.
# 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

Limpieza de recursos

Si ya no necesita los recursos que creó, use el comando az group delete para eliminar el grupo de recursos y todos los recursos que este contiene. Entre estos recursos se incluyen la cuenta y la tabla de Azure Cosmos DB. Los recursos pueden tardar un tiempo en eliminarse.

az group delete --name $resourceGroup

Pasos siguientes