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.
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 alockid
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