إنشاء وإدارة قاعدة بيانات Azure لنقاط نهاية خدمة MariaDB VNet باستخدام Azure CLI

تعمل نقاط نهاية وقواعد خدمات الشبكة الظاهرية (VNet) على توسيع مساحة العنوان الخاصة للشبكة الظاهرية إلى قاعدة بيانات Azure لخادم MariaDB. باستخدام أوامر Azure CLI المناسبة، يمكنك إنشاء وتحديث وحذف وإدراج وإظهار نقاط نهاية وقواعد خدمة VNet لإدارة الخادم الخاص بك. للحصول على نظرة عامة على قاعدة بيانات Azure لنقاط نهاية خدمة MariaDB VNet، بما في ذلك القيود، راجع قاعدة بيانات Azure لنقاط نهاية خدمة MariaDB Server VNet. تتوفر نقاط نهاية خدمة VNet في جميع المناطق المدعومة لقاعدة بيانات Azure ل MariaDB.

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

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

ملاحظة

دعم نقاط نهاية خدمة VNet هو فقط للأغراض العامة والخوادم المحسنة للذاكرة.

تكوين نقاط نهاية خدمة VNet

يتم استخدام أوامر az network vnet لتكوين الشبكات الظاهرية. يمكن تكوين نقاط نهاية الخدمة على الشبكات الظاهرية بشكل مستقل، بواسطة مستخدم لديه حق الوصول للكتابة إلى الشبكة الظاهرية.

لتأمين موارد خدمة Azure إلى VNet، يجب أن يكون لدى المستخدم إذن "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/" للشبكات الفرعية التي تتم إضافتها. يتم تضمين هذا الإذن في أدوار مسؤول الخدمة المضمنة، بشكل افتراضي ويمكن تعديله عن طريق إنشاء أدوار مخصصة.

تعرف على المزيد حول الأدوار المضمنة وتعيين أذونات محددة للأدوار المخصصة.

يمكن أن تكون الشبكات الظاهرية وموارد خدمة Azure في نفس الاشتراكات أو اشتراكات مختلفة. إذا كانت موارد خدمة VNet وAzure في اشتراكات مختلفة، يجب أن تكون الموارد ضمن نفس مستأجر Active Directory (AD). تأكد من تسجيل موفر موارد Microsoft.Sql لكلا الاشتراكين. لمزيد من المعلومات، راجع تسجيل إدارة الموارد

هام

يوصى بشدة بقراءة هذه المقالة حول تكوينات واعتبارات نقطة نهاية الخدمة قبل تكوين نقاط نهاية الخدمة. نقطة نهاية خدمة الشبكة الظاهرية:نقطة نهاية خدمة الشبكة الظاهرية هي شبكة فرعية تتضمن قيم خصائصها اسما واحدا أو أكثر من أسماء أنواع خدمات Azure الرسمية. تستخدم نقاط نهاية خدمات VNet اسم نوع الخدمة Microsoft.Sql، والذي يشير إلى خدمة Azure المسماة SQL Database. تنطبق علامة الخدمة هذه أيضا على خدمات Azure SQL Database وAzure Database for MariaDB وPostgreSQL وMySQL. من المهم ملاحظة عند تطبيق علامة خدمة Microsoft.Sql على نقطة نهاية خدمة VNet، فإنها تقوم بتكوين نسبة استخدام الشبكة لنقطة نهاية الخدمة لجميع خدمات قاعدة بيانات Azure، بما في ذلك قاعدة بيانات Azure SQL وقاعدة بيانات Azure ل PostgreSQL وقاعدة بيانات Azure ل MariaDB وقاعدة بيانات Azure لخوادم MySQL على الشبكة الفرعية.

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

تشغيل Azure Cloud Shell

إن Azure Cloud Shell هو واجهة تفاعلية 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'

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

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

# Create MariaDB server in vNet

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-mariadb-rg-$randomIdentifier"
tag="create-mariadb-server"
server="msdocs-mariadb-server-$randomIdentifier"
sku="GP_Gen5_2"
vNet="vNet-$randomIdentifier"
vNetAddressPrefix="10.0.0.0/16"
subnet="subnet-$randomIdentifier"
subnetAddressPrefix="10.0.1.0/24"
rule="rule-$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"

echo "Using resource group $resourceGroup with login: $login, password: $password..."

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a MariaDB server in the resource group
# Name of a server maps to DNS name and is thus required to be globally unique in Azure.
echo "Creating $server in $location..."
az mariadb server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password --sku-name $sku

# Get available service endpoints for Azure region output is JSON
echo "List of available service endpoints for $location"
az network vnet list-endpoint-services --location "$location"

# Add Azure SQL service endpoint to a subnet while creating the virtual network
echo "Adding service endpoint to $subnet in $vNet"
az network vnet create --resource-group $resourceGroup --name $vNet --address-prefixes $vNetAddressPrefix --location "$location"

# Creates the service endpoint
echo "Creating a service endpoint to $subnet in $vNet"
az network vnet subnet create --resource-group $resourceGroup --name $subnet --vnet-name $vNet --address-prefix $subnetAddressPrefix --service-endpoints Microsoft.SQL

# View service endpoints configured on a subnet
echo "Viewing the service endpoint to $subnet in $vNet"
az network vnet subnet show --resource-group $resourceGroup --name $subnet --vnet-name $vNet

# Create a VNet rule on the server to secure it to the subnet
# Note: resource group (-g) parameter is where the database exists.
# VNet resource group if different should be specified using subnet id (URI) instead of subnet, VNet pair.
echo "Creating a VNet rule on $server to secure it to $subnet in $vNet"
az mariadb server vnet-rule create --name $rule --resource-group $resourceGroup --server $server --vnet-name $vNet --subnet $subnet

تنظيف النشر

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

echo "Cleaning up resources by removing the resource group..."
az group delete --name $resourceGroup -y