Conectar uma conta existente do Azure Cosmos DB com pontos de extremidade de serviço de rede virtual usando a CLI do Azure
APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela
O script neste artigo demonstra a conexão de uma conta existente do Azure Cosmos DB a uma nova rede virtual existente onde a sub-rede ainda não está configurada para pontos de extremidade de serviço usando o ignore-missing-vnet-service-endpoint
parâmetro. Isso permite que a configuração da conta do Azure Cosmos DB seja concluída sem erros antes que a configuração para a sub-rede da rede virtual seja concluída. Quando a configuração da sub-rede estiver concluída, a conta do Azure Cosmos DB estará acessível através da sub-rede configurada.
Este script usa uma API para conta NoSQL. Para usar este exemplo para outras APIs, aplique os enable-virtual-network
parâmetros e virtual-network-rules
no script abaixo ao script específico da API.
Se não tiver uma subscrição 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, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Este artigo requer a versão 2.9.1 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
Script de exemplo
Iniciar o Azure Cloud Shell
O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.
Para abrir o Cloud Shell, basta selecionar Experimentar no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.
Quando o Cloud Shell abrir, verifique se o Bash está selecionado para o seu 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-o no Cloud Shell e pressione Enter para executá-lo.
Iniciar sessão no Azure
O Cloud Shell é autenticado automaticamente na conta inicial com a qual entrou conectado. Use o script a seguir para entrar usando uma assinatura diferente, substituindo <Subscription ID>
pela sua ID de Assinatura do Azure. Se não tiver uma subscrição 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 obter mais informações, consulte definir assinatura ativa ou fazer login interativamente
Executar o script
# Service endpoint operations for an Azure Cosmos account
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-cosmosdb-rg-$randomIdentifier"
tag="service-endpoints-cosmosdb"
account="msdocs-account-cosmos-$randomIdentifier" #needs to be lower case
vNet='msdocs-vnet-cosmosdb'
frontEnd='msdocs-front-end-cosmosdb'
backEnd='msdocs-back-end-cosmosdb'
# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag
# Create a virtual network with a front-end subnet
echo "Creating $vnet"
az network vnet create --name $vNet --resource-group $resourceGroup --address-prefix 10.0.0.0/16 --subnet-name $frontEnd --subnet-prefix 10.0.1.0/24
# Create a back-end subnet but without specifying --service-endpoints Microsoft.AzureCosmosDB
echo "Creating $backend in $vNet"
az network vnet subnet create --name $backEnd --resource-group $resourceGroup --address-prefix 10.0.2.0/24 --vnet-name $vNet
# Retrieve the value of the service endpoint
svcEndpoint=$(az network vnet subnet show --resource-group $resourceGroup --name $backEnd --vnet-name $vNet --query 'id' -o tsv)
# Create a Cosmos DB account with default values
# Use appropriate values for --kind or --capabilities for other APIs
echo "Creating $account for CosmosDB"
az cosmosdb create --name $account --resource-group $resourceGroup --enable-virtual-network
# Add the virtual network rule but ignore the missing service endpoint on the subnet
az cosmosdb network-rule add --name $account --resource-group $resourceGroup --virtual-network $vNet --subnet $svcEndpoint --ignore-missing-vnet-service-endpoint true
# Update vNet update
az network vnet subnet update --name $backEnd --resource-group $resourceGroup --vnet-name $vNet --service-endpoints Microsoft.AzureCosmosDB
Clean up resources (Limpar 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ê tenha uma necessidade contínua desses recursos. Alguns desses recursos podem demorar um pouco para criar, bem como para excluir.
az group delete --name $resourceGroup
Referência de exemplo
Este script utiliza os seguintes comandos. Cada comando na tabela liga à documentação específica do comando.
Comando | Notas |
---|---|
az group create | Cria um grupo de recursos no qual todos os recursos são armazenados. |
az network vnet create | Cria uma rede virtual do Azure. |
az network vnet subnet create | Cria uma sub-rede para uma rede virtual do Azure. |
AZ Network VNet sub-rede mostrar | Retorna uma sub-rede para uma rede virtual do Azure. |
az cosmosdb create | Cria uma conta do Azure Cosmos DB. |
az network vnet subnet update | Atualiza uma sub-rede para uma rede virtual do Azure. |
az group delete | Elimina um grupo de recursos, incluindo todos os recursos aninhados. |
Próximos passos
Para obter mais informações sobre a CLI do Azure Cosmos DB, consulte a documentação da CLI do Azure Cosmos DB.
Para exemplos de CLI do Azure para APIs específicas, consulte: