قم بتوصيل حساب Azure Cosmos الحالي بنقاط نهاية خدمة الشبكة الظاهرية باستخدام Azure CLI

ينطبق على: واجهة برمجة تطبيقاتSQL وواجهة برمجة تطبيقات Cassandra وواجهة برمجة تطبيقات Gremlin وواجهة برمجة تطبيقات Table وواجهة برمجة تطبيقات Azure Cosmos DB لـ MongoDB

يوضح البرنامج النصي في هذه المقالة توصيل حساب Azure Cosmos موجود بشبكة ظاهرية جديدة حالية حيث لم يتم تكوين الشبكة الفرعية بعد لنقاط نهاية الخدمة باستخدام المعلمة ignore-missing-vnet-service-endpoint. يسمح ذلك بإكمال تكوين حساب Cosmos بدون أخطاء قبل اكتمال تكوين الشبكة الفرعية للشبكة الافتراضية. بمجرد اكتمال تكوين الشبكة الفرعية، يمكن الوصول إلى حساب Cosmos من خلال الشبكة الفرعية المكونة.

يستخدم هذا البرنامج النصي حساب SQL (Core) API. لاستخدام هذا النموذج لواجهات برمجة التطبيقات الأخرى، قم بتطبيق معلمات enable-virtual-network وvirtual-network-rules في النص البرمجي أدناه على النص البرمجي المحدد لواجهة برمجة التطبيقات.

إذا لم يكن لديك اشتراك Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

يمكنك استخدام Azure Cloud Shell أو Azure CLI محلي.

  • تتطلب هذه المقالة الإصدار 2.9.1 أو أحدث من CLI Azure. إذا كنت تستخدم Azure Cloud Shell، يتم تثبيت أحدث إصدار بالفعل.

نموذج البرنامج النصي

تشغيل Azure Cloud Shell

Azure Cloud Shell عبارة عن واجهة تفاعلية مجانية يُمكنك استخدامها لتنفيذ الخطوات الواردة في هذه المقالة. يحتوي على أدوات Azure الشائعة والمثبتة مسبقاً والتي تم تكوينها للاستخدام مع حسابك.

لفتح Cloud Shell، ما عليك سوى تحديد "Try it" من الزاوية العليا اليسرى لكتلة التعليمة البرمجية. يمكنك أيضاً تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com.

عند فتح Cloud Shell، تحقق من تحديد Bash لبيئتك. ستستخدم الجلسات اللاحقة Azure CLI في بيئة Bash، حدد نسخ لنسخ كتل التعليمة البرمجية، وألصقها في Cloud Shell، واضغط على Enter لتشغيلها.

تسجيل الدخول إلى Azure

يُصادق Cloud Shell تلقائياً بموجب الحساب الأولي الذي سُجل الدخول به. استخدم البرنامج النصي التالي لتسجيل الدخول باستخدام اشتراك مختلف، واستبدل <Subscription ID> بمعرّف اشتراك Azure الخاص بك. إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

subscription="<subscriptionId>" # add subscription here

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

لمزيد من المعلومات، راجع تعيين اشتراك نشط أو تسجيل الدخول بشكل تفاعلي

تشغيل البرنامج النصي

# 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

تنظيف الموارد

استخدم الأمر التالي لإزالة مجموعة الموارد وجميع الموارد المقترنة بها باستخدام الأمر حذف مجموعة az - إلا إذا وُجدت حاجة مستمرة لهذه الموارد. قد يستغرق إنشاء بعض هذه الموارد بعض الوقت، وكذلك حذفها.

az group delete --name $resourceGroup

مرجع النموذج

يستخدم هذا البرنامج النصي الأوامر التالية. يرتبط كل أمر في الجدول بأمر وثائق معينة.

الأمر ملاحظات
az group create يُنشئ مجموعة موارد يتم فيها تخزين جميع الموارد.
إعداد شبكة az network vnet ينشئ شبكة ظاهرية Azure.
إعداد شبكة az network vnet يُنشئ شبكة فرعية لAzure Virtual Network.
عرض الشبكة الفرعية لشبكة vnet من az إرجاع شبكة فرعية لAzure Virtual Network.
إنشاء az cosmosdb ينشئ حساب Azure Cosmos DB.
من الألف إلى الياء شبكة vnet الشبكة الفرعية تحديث⁦ يحدّث شبكة فرعية لAzure Virtual Network.
حذف مجموعة az حذف مجموعة موارد، بما في ذلك كافة الموارد المتداخلة.

الخطوات التالية

لمزيد من المعلومات حول Azure Cosmos DB CLI، اطلع على وثائق Azure Cosmos DB CLI.

للحصول على عينات Azure CLI لواجهات برمجة تطبيقات محددة، انظر: