Usar a CLI do Azure para operações de bloqueio de recursos no Azure Cosmos DB para tabelas de tabela

APLICA-SE A: Tabela

O script neste artigo demonstra a execução de operações de bloqueio de recursos para uma tabela API for Table.

Importante

Para habilitar o bloqueio de recursos, a conta do Azure Cosmos DB deve ter a disableKeyBasedMetadataWriteAccess propriedade habilitada. Essa propriedade impede quaisquer alterações em recursos de clientes que se conectam por meio de chaves de conta, como o SDK da Tabela do Azure Cosmos DB, o SDK da Tabela de Armazenamento do Azure ou o portal do Azure. Para obter mais informações, consulte Impedindo alterações de SDKs.

Pré-requisitos

  • Você precisa de um Azure Cosmos DB para conta de tabela, banco de dados e tabela criada. Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

    Importante

    Para criar ou excluir bloqueios de recursos, você deve ter a função Proprietário em sua assinatura do Azure.

  • Este script requer a CLI do Azure versão 2.12.1 ou posterior.

    • Você pode executar o script no ambiente Bash no Azure Cloud Shell. Quando o Cloud Shell abrir, verifique se o Bash aparece no campo de ambiente no canto superior esquerdo da janela do shell. O Cloud Shell sempre tem a versão mais recente da CLI do Azure.

      O Cloud Shell é autenticado automaticamente na conta que você usou para entrar no portal do Azure. Você pode usar az account set para entrar com uma assinatura diferente, substituindo <subscriptionId> por sua ID de assinatura do Azure.

      subscription="<subscriptionId>" # add subscription here
      
      az account set -s $subscription # ...or use 'az login'
      
    • Se preferir, você pode instalar a CLI do Azure para executar o script localmente. Execute az version para localizar a versão da CLI do Azure e as bibliotecas dependentes instaladas e execute az upgrade se precisar atualizar. Se solicitado, instale as extensões da CLI do Azure. Se você estiver executando o Windows ou macOS, considere executar a CLI do Azure em um contêiner do Docker.

      Se você estiver usando uma instalação local, entre no Azure executando az login e seguindo os prompts. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

Script de exemplo

O script a seguir usa comandos az lock da CLI do Azure para manipular bloqueios de recursos em sua tabela do Azure Cosmos DB for Table. O script precisa do resourceGroup, account nome e table nome para a conta e a tabela do Azure Cosmos DB que você criou.

  • az lock create cria um bloqueio de CanNotDelete recursos na tabela.
  • az lock list lista todas as informações de bloqueio para sua conta da Tabela do Azure Cosmos DB.
  • az lock delete usa az lock show para obter o id do bloqueio em sua tabela e, em seguida, usa a lockid propriedade para excluir o bloqueio.
# 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

Clean up resources (Limpar recursos)

Se você não precisar mais dos recursos criados, use o comando az group delete para excluir o grupo de recursos e todos os recursos que ele contém. Esses recursos incluem a conta e a tabela do Azure Cosmos DB. Os recursos podem demorar um pouco para serem excluídos.

az group delete --name $resourceGroup

Próximos passos