Ansluta ett befintligt Azure Cosmos-konto med tjänstslutpunkter för virtuellt nätverk med hjälp av Azure CLI

GÄLLER FÖR: SQL API Cassandra API Gremlin API Table API Azure Cosmos DB API for MongoDB

Skriptet i den här artikeln visar hur du ansluter ett befintligt Azure Cosmos-konto till ett befintligt nytt virtuellt nätverk där undernätet ännu inte har konfigurerats för tjänstslutpunkter med hjälp av parametern ignore-missing-vnet-service-endpoint . På så sätt kan konfigurationen för Cosmos-kontot slutföras utan fel innan konfigurationen av det virtuella nätverkets undernät har slutförts. När undernätskonfigurationen är klar är Cosmos-kontot tillgängligt via det konfigurerade undernätet.

Det här skriptet använder ett SQL -API-konto (Core). Om du vill använda det här exemplet för andra API:er använder du enable-virtual-network parametrarna och virtual-network-rules i skriptet nedan för ditt API-specifika skript.

Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

Du kan använda antingen Azure Cloud Shell eller ett lokalt Azure CLI.

  • Den här artikeln kräver version 2.9.1 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Exempelskript

Starta Azure Cloud Shell

Azure Cloud Shell är ett interaktivt gränssnitt som du kan använda för att utföra stegen i den här artikeln. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto.

Om du vill öppna Cloud Shell väljer du bara Prova från det övre högra hörnet i ett kodblock. Du kan också starta Cloud Shell i en separat webbläsarflik genom att gå till https://shell.azure.com.

När Cloud Shell öppnas kontrollerar du att Bash har valts för din miljö. Efterföljande sessioner använder Azure CLI i en Bash-miljö, väljer Kopiera för att kopiera kodblocken, klistrar in det i Cloud Shell och trycker på Retur för att köra det.

Logga in på Azure

Cloud Shell autentiseras automatiskt under det första kontot som loggas in med. Använd följande skript för att logga in med en annan prenumeration och ersätt <Subscription ID> med ditt Azure-prenumerations-ID. Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt Azure-konto innan du börjar.

subscription="<subscriptionId>" # add subscription here

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

Mer information finns i ange en aktiv prenumeration eller logga in interaktivt

Kör skriptet

# 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

Rensa resurser

Använd följande kommando för att ta bort resursgruppen och alla resurser som är associerade med den med kommandot az group delete – såvida du inte har ett pågående behov av dessa resurser. Vissa av dessa resurser kan ta en stund att skapa och ta bort.

az group delete --name $resourceGroup

Exempelreferens

Det här skriptet använder följande kommandon. Varje kommando i tabellen länkar till kommandospecifik dokumentation.

Kommando Kommentarer
az group create Skapar en resursgrupp där alla resurser lagras.
az network vnet create Skapar ett virtuellt Azure-nätverk.
az network vnet subnet create Skapar ett undernät för ett virtuellt Azure-nätverk.
az network vnet subnet show Returnerar ett undernät för ett virtuellt Azure-nätverk.
az cosmosdb create Skapar ett Azure Cosmos DB-konto.
az network vnet subnet update Uppdateringar ett undernät för ett virtuellt Azure-nätverk.
az group delete Tar bort en resursgrupp, inklusive alla kapslade resurser.

Nästa steg

Mer information om Azure Cosmos DB CLI finns i Azure Cosmos DB CLI-dokumentationen.

Azure CLI-exempel för specifika API:er finns i: