Criar um bloqueio de recursos para um banco de dados e um contêiner do Azure Cosmos DB for NoSQL usando a CLI do Azure
APLICA-SE A: NoSQL
O script neste artigo demonstra como executar operações de bloqueio de recurso para um banco de dados SQL e um contêiner.
Importante
Para criar bloqueios de recursos, você deve ter associação na função de proprietário na assinatura.
Os bloqueios de recursos não funcionam para as alterações feitas por usuários que se conectam usando qualquer SDK do Azure Cosmos DB, qualquer ferramenta que se conecte por meio de chaves de conta ou o portal do Azure, a menos que a conta do Azure Cosmos DB seja bloqueada primeiro com a propriedade disableKeyBasedMetadataWriteAccess
habilitada. Para saber mais sobre como habilitar essa propriedade, confira Como impedir alterações por meio dos SDKs.
Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Este artigo exige a versão 2.9.1 ou posterior da CLI do Azure. Se você está usando o Azure Cloud Shell, a versão mais recente já está instalada.
Exemplo de script
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell gratuito e interativo que poderá ser usado para executar as etapas deste artigo. Ele tem ferramentas do Azure instaladas e configuradas para usar com sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Você também pode iniciar o Cloud Shell em uma guia separada do navegador indo até https://shell.azure.com.
Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o ambiente. As sessões subsequentes usarão a CLI do Azure em um ambiente Bash. Selecione Copiar para copiar os blocos de código, cole-os no Cloud Shell e pressione Enter para executá-los.
Entrar no Azure
O Cloud Shell é autenticado automaticamente na conta inicial usada para entrar. Use o seguinte script para entrar usando uma assinatura diferente, substituindo <Subscription ID>
pela ID da Assinatura do Azure. Caso você não tenha uma assinatura do Azure, crie uma conta gratuita do Azure antes de começar.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa
Executar o script
# Resource lock operations for a SQL database and container
# Subscription owner permissions required for this script
# Run this script after running
# "https://docs.microsoft.com/azure/cosmos-db/scripts/cli/sql/create#sample-script"
# Variable block
# Use values from prerequisite script or from your environment
# resourceGroup="your resource group name"
# account="your account name"
# database="your database name"
# container="your container name"
lockType="CanNotDelete" # CanNotDelete or ReadOnly
databaseParent="databaseAccounts/$account"
containerParent="databaseAccounts/$account/sqlDatabases/$database"
databaseLock="$database-Lock"
containerLock="$container-Lock"
# Create a delete lock on database
echo "Creating $lockType lock on $database"
az lock create --name $databaseLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/sqlDatabases --lock-type $lockType --parent $databaseParent --resource $database
# Create a delete lock on container
echo "Creating $lockType lock on $container"
az lock create --name $containerLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/containers --lock-type $lockType --parent $containerParent --resource $container
# 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 database
echo "Deleting $databaseLock on $database"
lockid=$(az lock show --name $databaseLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/sqlDatabases --resource $database --parent $databaseParent --output tsv --query id)
az lock delete --ids $lockid
# Delete lock on container
echo "Deleting $containerLock on $container"
lockid=$(az lock show --name $containerLock --resource-group $resourceGroup --resource-type Microsoft.DocumentDB/containers --resource-name $container --parent $containerParent --output tsv --query id)
az lock delete --ids $lockid
Limpar os recursos
Use o comando a seguir para remover o grupo de recursos e todos os recursos associados a ele usando o comando az group delete, a menos que você necessite desses recursos com frequência. A criação e a exclusão de alguns desses recursos podem demorar um pouco.
az group delete --name $resourceGroup
Exemplo de referência
Este script usa os comandos a seguir. Cada comando da tabela é vinculado à documentação específica do comando.
Comando | Observações |
---|---|
az lock create | Cria um bloqueio. |
az lock list | Lista informações sobre o bloqueio. |
az lock show | Mostra as propriedades de um bloqueio. |
az lock delete | Exclui um bloqueio. |