Ligue uma conta Azure Cosmos existente com pontos finais de serviço de rede virtual usando Azure CLI

APLICA A: SQL API Cassandra API API API API Table API Azure Cosmos DB API para MongoDB

O script deste artigo demonstra a ligação de uma conta Azure Cosmos existente a uma nova rede virtual existente onde a sub-rede ainda não está configurada para pontos finais de serviço utilizando o ignore-missing-vnet-service-endpoint parâmetro. Isto permite que a configuração da conta Cosmos seja concluída sem erro antes da configuração da sub-rede da rede virtual estar concluída. Uma vez concluída a configuração da sub-rede, a conta Cosmos está acessível através da sub-rede configurada.

Este script utiliza uma conta API SQL (Core). Para utilizar esta amostra para outras APIs, aplique os enable-virtual-network parâmetros e virtual-network-rules parâmetros no script abaixo no seu script específico da API.

Se não tiver uma subscrição do Azure, crie uma conta Azure gratuita antes de começar.

Pré-requisitos

Você pode usar o Azure Cloud Shell ou um Azure CLI local.

  • Este artigo requer a versão 2.9.1 ou posterior do Azure CLI. Se utilizar 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 Experimente 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 Cloud Shell abrir, verifique se a Bash está selecionada para o seu ambiente. As sessões subsequentes utilizarão o CLI Azure num ambiente bash, seleciona a Cópia para copiar os blocos de código, colá-lo no Cloud Shell e pressionar Enter para executá-lo.

Iniciar sessão no Azure

Cloud Shell é automaticamente autenticado na conta inicial com a qual se inscreve. Utilize o seguinte script para iniciar sing usando uma subscrição diferente, substituindo <Subscription ID> pelo seu ID de subscrição Azure. Se não tiver uma subscrição do Azure, crie uma conta Azure gratuita antes de começar.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Para obter mais informações, consulte a subscrição ativa definida ou faça 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

Limpar os recursos

Utilize o seguinte comando para remover o grupo de recursos e todos os recursos que lhe estão associados utilizando o comando de eliminação do grupo AZ - a menos que tenha uma necessidade permanente para estes recursos. Alguns destes recursos podem demorar algum tempo a criar, bem como a eliminar.

az group delete --name $resourceGroup

Referência da amostra

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 Azure.
az network vnet subnet create Cria uma sub-rede para uma rede virtual Azure.
az rede vnet subnet show Devolve uma sub-rede para uma rede virtual Azure.
az cosmosdb create Cria uma conta do Azure Cosmos DB.
az network vnet subnet update Atualizações uma sub-rede para uma rede virtual Azure.
az group delete Elimina um grupo de recursos, incluindo todos os recursos aninhados.

Passos seguintes

Para mais informações sobre o Azure Cosmos DB CLI, consulte a documentação do Azure Cosmos DB CLI.

Para as amostras Azure CLI para APIs específicas ver: