Usar a CLI do Azure para operações de bloqueio de recursos em tabelas do Azure Cosmos DB for Table
APLICA-SE AO: Table
O script nesse artigo demonstra como realizar operações de bloqueio de recurso para uma API de tabela.
Importante
Para habilitar o bloqueio de recursos, a conta do Azure Cosmos DB precisa ter a propriedade disableKeyBasedMetadataWriteAccess
habilitada. Essa propriedade impede alterações nos recursos de clientes que se conectam por meio de chaves de conta, como o SDK de Tabela do Azure Cosmos DB, o SDK de Tabela do Armazenamento do Azure ou o portal do Azure.
Pré-requisitos
Você precisa criar uma conta, um banco de dados e uma tabela do Azure Cosmos DB for Table. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Importante
Para criar ou excluir bloqueios de recursos, você precisa ter a função Proprietário na sua assinatura do Azure.
Este script requer a CLI do Azure versão 2.12.1 ou mais recente.
Você pode executar o script no ambiente bash no Azure Cloud Shell. Quando o Cloud Shell for aberto, verifique se Bash é exibido no campo do ambiente no canto superior esquerdo da janela do shell. O Cloud Shell sempre tem a última versão da CLI do Azure.
O Cloud Shell é automaticamente autenticado na conta que você usou para entrar no portal do Azure. Use az account set para entrar com outra assinatura, substituindo
<subscriptionId>
pela sua ID da assinatura do Azure.subscription="<subscriptionId>" # add subscription here az account set -s $subscription # ...or use 'az login'
Se preferir, instale a CLI do Azure para executar o script localmente. Execute az version para encontrar a versão da CLI do Azure e as bibliotecas dependentes instaladas e execute az upgrade se precisar atualizá-la. Se solicitado, instale as extensões da CLI do Azure. Se estiver executando o Windows ou o macOS, considere a possibilidade de executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre no Azure executando az login e seguindo os avisos. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Exemplo de script
O script a seguir usa comandos az lock da CLI do Azure para manipular bloqueios de recursos na tabela do Azure Cosmos DB for Table. O script precisa do resourceGroup
, do nome da account
e do nome da table
da tabela do Azure Cosmos DB que você criou.
- az lock create cria um bloqueio de recurso
CanNotDelete
na tabela. - az lock list lista todas as informações do bloqueio para a conta da Tabela do Azure Cosmos DB.
- az lock delete usa az lock show para obter o
id
do bloqueio na tabela e usa a propriedadelockid
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
Limpar os recursos
Caso não precise 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