التمرين - تحديد الموارد التابعة
ملاحظة
عند تنشيط بيئة الاختبار المعزولة لأول مرة والموافقة على الشروط، يرتبط حسابك في Microsoft بدليل جديد في Azure يسمى Microsoft Learn Sandbox. كما تتم إضافتك إلى اشتراك خاص يسمى اشتراك Concierge.
لقد بدأت العمل على طلبات فريق البحث &التطوير لديك، وقررت أن تبدأ ببناء قاعدة بيانات Azure Cosmos DB لبيانات اختبار لعبة الطائرة بدون طيار. في هذا التمرين، عليك إنشاء حساب Azure Cosmos DB وموردين تابعين، أحدهما باستخدام الخاصية parent والآخر كمورد متداخل.
أثناء العملية، ستقوم بما يلي:
- إنشاء ملف Bicep لنشر حساب DB Cosmos.
- إضافة قاعدة بيانات وحاوية، والتي هي الموارد التابعة لحساب COSMOS DB.
- نشر القالب والتحقق من التوزيع.
يستخدم هذا التمرين ملحق Bicep لـ Visual Studio Code. تأكد من تثبيت هذا الملحق في التعليمة البرمجية لـ Visual Studio.
إنشاء قالب Bicep يحتوي على حساب Azure Cosmos DB
أولاً، يمكنك إنشاء قالب Bicep جديد باستخدام حساب Azure Cosmos DB. لإجراء ذلك:
افتح التعليمة البرمجية لـ Visual Studio.
أنشئ ملفاً جديداً يسمى main.bicep.
احفظ الملف الفارغ بحيث يقوم Visual Studio Code بتحميل أدوات Bicep.
يمكنك إما تحديد File>Save As، أو الضغط على Ctrl+S في Windows (S+⌘ في macOS). تأكد من تذكر المكان الذي حفظت فيه الملف. على سبيل المثال، قد ترغب في إنشاء مجلد للبرامج النصية لحفظ الملف به.
أضف المحتوى التالي إلى الملف. من الجيد كتابتها يدويًا بدلًا من نسخها ولصقها. وبهذه الطريقة، يمكنك أن ترى كيف تساعدك الأدوات في كتابة ملفات Bicep لديك.
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param location string = resourceGroup().location resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2020-04-01' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } }تلميح
تتسم Bicep بالصرامة فيما يتعلق بالمكان الذي تضع فيه فواصل الأسطر، لذا تأكد من إضافة فواصل الأسطر فقط حيث تظهر هنا.
يتم من خلال قالب Bicep هذا توزيع حساب Azure Cosmos DB. هذا هو المورد الأصل الذي ستعتمد عليه قريبًا.
احفظ التغييرات إلى الملف.
إضافة قاعدة بيانات
بعد ذلك، يمكنك إنشاء قاعدة البيانات، وهي مورد تابع لحساب AZURE Cosmos DB.
في الجزء العلوي من الملف، بين المعلمتين الموجودتين، أضف المعلمة التالية:
param cosmosDBDatabaseThroughput int = 400ضمن إعلانات المعلمة، أضف المتغير التالي:
var cosmosDBDatabaseName = 'FlightTests'أضف تعريف المورد التالي في الجزء السفلي من الملف، أسفل تعريف مورد حساب Azure Cosmos DB.
resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2020-04-01' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } }لاحظ أن هذه التعليمات البرمجية يتم من خلالها توزيع قاعدة البيانات، وهي مورد تابع، باستخدام الخاصية
parent. لاحظ أيضًا أنك استخدمت نوع المورد المؤهل بالكامل، وحددت إصدار واجهة برمجة التطبيقات بشكل صريح.احفظ التغييرات إلى الملف.
«إضافة حاوية»
الآن يمكنك إضافة مورد تابع آخر. هذه المرة، يمكنك إضافته كمورد متداخل بدلاً من استخدام خاصية parent.
بالقرب من أعلى الملف، أسفل تعريف المتغير
cosmosDBDatabaseName، أضف المتغيرات التالية:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'بالقرب من أسفل الملف، ضمن تعريف مورد قاعدة البيانات وقبل قوس الإغلاق الخاص به (
})، أضف تعريف المورد المتداخل التالي:resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } }لاحظ أنك استخدمت نوع مورد قصيرًا،
containers، لأن Bicep يفهم أنه ينتمي إلى نوع المورد الأصل. Bicep يعرف أن نوع المورد المؤهل بالكامل هوMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers. لم تقم بتحديد إصدار واجهة برمجة التطبيقات، لذا يستخدم Bicep الإصدار من المورد الأصل،2020-04-01.بعد الانتهاء، يجب أن يظهر قالب Bicep لديك كما يلي:
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param cosmosDBDatabaseThroughput int = 400 param location string = resourceGroup().location var cosmosDBDatabaseName = 'FlightTests' var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId' resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2020-04-01' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } } resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2020-04-01' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } } }احفظ التغييرات إلى الملف.
نشر القالب إلى Azure
لنشر هذا القالب إلى Azure، تحتاج إلى تسجيل الدخول إلى حساب Azure الخاص بك من وحدة طرفية لتعليمة برمجية Visual Studio. تأكد من تثبيت أدوات Azure CLI، وسجّل الدخول بالحساب نفسه الذي استخدمته لتنشيط بيئة الاختبار المعزولة.
في القائمة المحطة الطرفية، حدد محطة طرفية جديدة. عادة ما تفتح نافذة المحطة الطرفية في النصف السفلي من الشاشة.
إذا كانت القشرة الموضحة على الجانب الأيمن من نافذة المحطة الطرفية هي bash، فإن shell الصحيح مفتوح ويمكنك التخطي إلى القسم التالي.
في حالة ظهور غلاف آخر غير bash، حدد قائمة shell المنسدلة، ثم حدد Git Bash (افتراضي).
في قائمة الأصداف الطرفية، حدد bash.
في المحطة الطرفية، اذهب إلى الدليل حيث قمت بحفظ القالب الخاص بك. على سبيل المثال، إذا حفظت قالبك في مجلد قوالب، يمكنك استخدام هذا الأمر:
cd templates
تثبيت Bicep
قم بتشغيل الأمر التالي للتأكد من أن لديك أحدث إصدار من Bicep:
az bicep install && az bicep upgrade
تسجيل الدخول إلى Azure
في محطة Visual Studio Code الطرفية، قم بتسجيل الدخول إلى Azure عن طريق تشغيل الأمر التالي:
az loginفي المستعرض الذي يفتح، سجل الدخول إلى حسابك في Azure.
تعرض محطة Visual Studio Code الطرفية قائمة الاشتراكات المقترنة بهذا الحساب.
قم بتعيين الاشتراك الافتراضي لجميع أوامر Azure CLI التي تقوم بتشغيلها في جلسة العمل هذه.
az account set --subscription "Concierge Subscription"ملاحظة
إذا كنت قد استخدمت أكثر من بيئة اختبار معزولة واحدة مؤخرًا، فقد تعرض المحطة الطرفية أكثر من مثيل واحد من Concierge Subscription. في هذه الحالة، استخدم الخطوتين التاليتين لتعيين أحدهم كالاشتراك الافتراضي. إذا نجح الأمر السابق، وتم سرد Concierge Subscription واحد فقط، فتخطَّ الخطوتين التاليتين.
احصل على معرّفات Concierge Subscription.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output tableقم بتعيين الاشتراك الافتراضي باستخدام معرّف الاشتراك. استبدل {معرّف الاشتراك الخاص بك} بأحدث معرّف اشتراك Concierge.
az account set --subscription {your subscription ID}
تعيين مجموعة الموارد الافتراضية
عند استخدام CLI، يمكنك تعيين مجموعة الموارد الافتراضية وحذف المعلمة من بقية أوامر Azure CLI في هذا التمرين. قم بتعيين الإعدادات الافتراضية لمجموعة الموارد التي تم إنشاؤها لك في بيئة الاختبار المعزولة.
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
نشر القالب إلى Azure
قم بتشغيل التعليمات البرمجية التالية من المحطة الطرفية في Visual Studio Code لنشر قالب Bicep إلى Azure. قد يستغرق إكمال ذلك دقيقة أو دقيقتين، ثم ستشهد عملية نشر ناجحة.
az deployment group create --template-file main.bicep
سترى Running... في المحطة الطرفية.
لنشر هذا القالب إلى Azure، قم بتسجيل الدخول إلى حساب Azure الخاص بك من محطة Visual Studio Code الطرفية. تأكد من تثبيت Azure PowerShell، وسجّل الدخول إلى الحساب نفسه الذي قام بتنشيط بيئة الاختبار المعزولة.
في القائمة المحطة الطرفية، حدد محطة طرفية جديدة. عادة ما تفتح نافذة المحطة الطرفية في النصف السفلي من الشاشة.
إذا كانت shell المعروضة على الجانب الأيمن من النافذة الطرفية هي powershell أو pwsh، فإن الغلاف الصحيح مفتوح ويمكنك التخطي إلى القسم التالي.
في حالة ظهور shell أخرى غير powershell أو pwsh، حدد القائمة المنسدلة shell، ثم حدد PowerShell.
في قائمة shell الطرفية، حدد powershell أو pwsh.
في المحطة الطرفية، اذهب إلى الدليل حيث قمت بحفظ القالب الخاص بك. على سبيل المثال، إذا حفظت قالبك في مجلد قوالب، يمكنك استخدام هذا الأمر:
cd templates
تثبيت Bicep CLI
لاستخدام Bicep من Azure PowerShell، ثبّت Bicep CLI.
تسجيل الدخول إلى Azure باستخدام Azure PowerShell
في محطة Visual Studio Code الطرفية، قم بتشغيل الأمر التالي:
Connect-AzAccountيفتح متصفح بحيث يمكنك تسجيل الدخول إلى حسابك في Azure.
بعد تسجيل الدخول إلى Azure، ستعرض المحطة الطرفية قائمة الاشتراكات المقترنة بهذا الحساب.
إذا قمت بتنشيط بيئة الاختبار المعزولة، يتم عرض اشتراك باسم Concierge Subscription. استخدمه في باقي التمرين.
عيِّن الاشتراك الافتراضي لجميع أوامر Azure PowerShell التي تشغِّلها في هذه الجلسة.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $contextملاحظة
إذا كنت قد استخدمت أكثر من بيئة اختبار معزولة واحدة مؤخرًا، فقد تعرض المحطة الطرفية أكثر من مثيل واحد من Concierge Subscription. في هذه الحالة، استخدم الخطوتين التاليتين لتعيين أحدهم كالاشتراك الافتراضي. إذا نجح الأمر السابق، وتم سرد Concierge Subscription واحد فقط، فتخطَّ الخطوتين التاليتين.
احصل على مُعرِّف الاشتراك. يسرد تشغيل الأمر التالي الاشتراكات الخاصة بك ومعرّفاتها. ابحث عن
Concierge Subscription، ثم انسخ المعرّف من العمود الثاني. وسيبدو على هذا النحوcf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.Get-AzSubscriptionغيِّر اشتراكك النشط إلى Concierge Subscription. تأكد من استبدال {Your subscription ID} بالمعرّف الذي قمت بنسخه.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
تعيين مجموعة الموارد الافتراضية
يمكنك تعيين مجموعة الموارد الافتراضية وحذف المعلمة من بقية أوامر Azure PowerShell في هذا التمرين. قم بتعيين هذه الإعدادات الافتراضية لمجموعة الموارد التي تم إنشاؤها لك في بيئة الاختبار المعزولة.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
نشر القالب إلى Azure
قم بنشر القالب إلى Azure باستخدام أمر Azure PowerShell التالي في المحطة الطرفية. قد يستغرق إكمال ذلك دقيقة أو دقيقتين، ثم ستشهد عملية نشر ناجحة.
New-AzResourceGroupDeployment -TemplateFile main.bicep
تحقق من التوزيع
انتقل إلى مدخل Azure وتأكد من أنك مشترك في بيئة الاختبار المعزولة:
حدد الأفاتار الخاص بك في الزاوية اليُمنى العلوية من الصفحة.
حدد "Switch directory". من القائمة، اختر دليل "Microsoft Learn Sandbox".
في الصفحة الرئيسية، اختر Resource groups. يظهر الجزء "Resource groups".
حدد "
[sandbox resource group name] ".في "Overview"، يمكنك رؤية أن ذلك النشر تم بنجاح.
حدد 1 Succeeded للاطلاع على تفاصيل التوزيع.
حدد عملية النشر التي تُسمى "main" لمعرفة الموارد التي تم نشرها، ثم حدد "Deployment details" لتوسيعها. في هذه الحالة، يوجد حساب COSMOS DB وقاعدة بيانات وحاوية مدرجة.
اترك الصفحة مفتوحة في المتصفح. سوف تتحقق من عمليات التوزيع مرة أخرى في وقت لاحق.
هل تحتاج إلى مساعدة؟ راجع دليل استكشاف الأخطاء وإصلاحها الذي نقدمه أو يمكنك توفير ملاحظات معينة عبر الإبلاغ عن مشكلة.