التمرين - تحديد الموارد التابعة

مكتمل

ملاحظة

عند تنشيط بيئة الاختبار المعزولة لأول مرة والموافقة على الشروط، يرتبط حسابك في 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. لإجراء ذلك:

  1. افتح التعليمة البرمجية لـ Visual Studio.

  2. أنشئ ملفاً جديداً يسمى main.bicep.

  3. احفظ الملف الفارغ بحيث يقوم Visual Studio Code بتحميل أدوات Bicep.

    يمكنك إما تحديد File>Save As، أو الضغط على Ctrl+S في Windows (S+⌘ في macOS). تأكد من تذكر المكان الذي حفظت فيه الملف. على سبيل المثال، قد ترغب في إنشاء مجلد للبرامج النصية لحفظ الملف به.

  4. أضف المحتوى التالي إلى الملف. من الجيد كتابتها يدويًا بدلًا من نسخها ولصقها. وبهذه الطريقة، يمكنك أن ترى كيف تساعدك الأدوات في كتابة ملفات 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. هذا هو المورد الأصل الذي ستعتمد عليه قريبًا.

  5. احفظ التغييرات إلى الملف.

إضافة قاعدة بيانات

بعد ذلك، يمكنك إنشاء قاعدة البيانات، وهي مورد تابع لحساب AZURE Cosmos DB.

  1. في الجزء العلوي من الملف، بين المعلمتين الموجودتين، أضف المعلمة التالية:

    param cosmosDBDatabaseThroughput int = 400
    
  2. ضمن إعلانات المعلمة، أضف المتغير التالي:

    var cosmosDBDatabaseName = 'FlightTests'
    
  3. أضف تعريف المورد التالي في الجزء السفلي من الملف، أسفل تعريف مورد حساب Azure Cosmos DB.

    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2020-04-01' = {
      parent: cosmosDBAccount
      name: cosmosDBDatabaseName
      properties: {
        resource: {
          id: cosmosDBDatabaseName
        }
        options: {
          throughput: cosmosDBDatabaseThroughput
        }
      }
    }
    

    لاحظ أن هذه التعليمات البرمجية يتم من خلالها توزيع قاعدة البيانات، وهي مورد تابع، باستخدام الخاصية parent. لاحظ أيضًا أنك استخدمت نوع المورد المؤهل بالكامل، وحددت إصدار واجهة برمجة التطبيقات بشكل صريح.

  4. احفظ التغييرات إلى الملف.

«إضافة حاوية»

الآن يمكنك إضافة مورد تابع آخر. هذه المرة، يمكنك إضافته كمورد متداخل بدلاً من استخدام خاصية parent.

  1. بالقرب من أعلى الملف، أسفل تعريف المتغير cosmosDBDatabaseName، أضف المتغيرات التالية:

    var cosmosDBContainerName = 'FlightTests'
    var cosmosDBContainerPartitionKey = '/droneId'
    
  2. بالقرب من أسفل الملف، ضمن تعريف مورد قاعدة البيانات وقبل قوس الإغلاق الخاص به (})، أضف تعريف المورد المتداخل التالي:

    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: {}
        }
      }
    }
    
  3. احفظ التغييرات إلى الملف.

نشر القالب إلى Azure

لنشر هذا القالب إلى Azure، تحتاج إلى تسجيل الدخول إلى حساب Azure الخاص بك من وحدة طرفية لتعليمة برمجية Visual Studio. تأكد من تثبيت أدوات Azure CLI، وسجّل الدخول بالحساب نفسه الذي استخدمته لتنشيط بيئة الاختبار المعزولة.

  1. في القائمة المحطة الطرفية، حدد محطة طرفية جديدة. عادة ما تفتح نافذة المحطة الطرفية في النصف السفلي من الشاشة.

  2. إذا كانت القشرة الموضحة على الجانب الأيمن من نافذة المحطة الطرفية هي bash، فإن shell الصحيح مفتوح ويمكنك التخطي إلى القسم التالي.

    Screenshot of the Visual Studio Code terminal window, with the bash option shown.

  3. في حالة ظهور غلاف آخر غير bash، حدد قائمة shell المنسدلة، ثم حدد Git Bash (افتراضي).

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and Git Bash Default selected.

  4. في قائمة الأصداف الطرفية، حدد bash.

    Screenshot of the Visual Studio Code terminal window, with the bash terminal selected.

  5. في المحطة الطرفية، اذهب إلى الدليل حيث قمت بحفظ القالب الخاص بك. على سبيل المثال، إذا حفظت قالبك في مجلد قوالب، يمكنك استخدام هذا الأمر:

    cd templates
    

تثبيت Bicep

قم بتشغيل الأمر التالي للتأكد من أن لديك أحدث إصدار من Bicep:

az bicep install && az bicep upgrade

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

  1. في محطة Visual Studio Code الطرفية، قم بتسجيل الدخول إلى Azure عن طريق تشغيل الأمر التالي:

    az login
    
  2. في المستعرض الذي يفتح، سجل الدخول إلى حسابك في Azure.

    تعرض محطة Visual Studio Code الطرفية قائمة الاشتراكات المقترنة بهذا الحساب.

  3. قم بتعيين الاشتراك الافتراضي لجميع أوامر Azure CLI التي تقوم بتشغيلها في جلسة العمل هذه.

    az account set --subscription "Concierge Subscription"
    

    ملاحظة

    إذا كنت قد استخدمت أكثر من بيئة اختبار معزولة واحدة مؤخرًا، فقد تعرض المحطة الطرفية أكثر من مثيل واحد من Concierge Subscription. في هذه الحالة، استخدم الخطوتين التاليتين لتعيين أحدهم كالاشتراك الافتراضي. إذا نجح الأمر السابق، وتم سرد Concierge Subscription واحد فقط، فتخطَّ الخطوتين التاليتين.

  4. احصل على معرّفات Concierge Subscription.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. قم بتعيين الاشتراك الافتراضي باستخدام معرّف الاشتراك. استبدل {معرّف الاشتراك الخاص بك} بأحدث معرّف اشتراك 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، وسجّل الدخول إلى الحساب نفسه الذي قام بتنشيط بيئة الاختبار المعزولة.

  1. في القائمة المحطة الطرفية، حدد محطة طرفية جديدة. عادة ما تفتح نافذة المحطة الطرفية في النصف السفلي من الشاشة.

  2. إذا كانت shell المعروضة على الجانب الأيمن من النافذة الطرفية هي powershell أو pwsh، فإن الغلاف الصحيح مفتوح ويمكنك التخطي إلى القسم التالي.

    Screenshot of the Visual Studio Code terminal window, with the p w s h option displayed in the shell dropdown.

  3. في حالة ظهور shell أخرى غير powershell أو pwsh، حدد القائمة المنسدلة shell، ثم حدد PowerShell.

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and powershell selected.

  4. في قائمة shell الطرفية، حدد powershell أو pwsh.

    Screenshot of the Visual Studio Code terminal window, with the powershell terminal selected.

  5. في المحطة الطرفية، اذهب إلى الدليل حيث قمت بحفظ القالب الخاص بك. على سبيل المثال، إذا حفظت قالبك في مجلد قوالب، يمكنك استخدام هذا الأمر:

    cd templates
    

تثبيت Bicep CLI

لاستخدام Bicep من Azure PowerShell، ثبّت Bicep CLI.

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

  1. في محطة Visual Studio Code الطرفية، قم بتشغيل الأمر التالي:

    Connect-AzAccount
    

    يفتح متصفح بحيث يمكنك تسجيل الدخول إلى حسابك في Azure.

  2. بعد تسجيل الدخول إلى Azure، ستعرض المحطة الطرفية قائمة الاشتراكات المقترنة بهذا الحساب.

    إذا قمت بتنشيط بيئة الاختبار المعزولة، يتم عرض اشتراك باسم Concierge Subscription. استخدمه في باقي التمرين.

  3. عيِّن الاشتراك الافتراضي لجميع أوامر Azure PowerShell التي تشغِّلها في هذه الجلسة.

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    ملاحظة

    إذا كنت قد استخدمت أكثر من بيئة اختبار معزولة واحدة مؤخرًا، فقد تعرض المحطة الطرفية أكثر من مثيل واحد من Concierge Subscription. في هذه الحالة، استخدم الخطوتين التاليتين لتعيين أحدهم كالاشتراك الافتراضي. إذا نجح الأمر السابق، وتم سرد Concierge Subscription واحد فقط، فتخطَّ الخطوتين التاليتين.

  4. احصل على مُعرِّف الاشتراك. يسرد تشغيل الأمر التالي الاشتراكات الخاصة بك ومعرّفاتها. ابحث عن Concierge Subscription، ثم انسخ المعرّف من العمود الثاني. وسيبدو على هذا النحو cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  5. غيِّر اشتراكك النشط إلى 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

تحقق من التوزيع

  1. انتقل إلى مدخل Azure وتأكد من أنك مشترك في بيئة الاختبار المعزولة:

    1. حدد الأفاتار الخاص بك في الزاوية اليُمنى العلوية من الصفحة.

    2. حدد "Switch directory". من القائمة، اختر دليل "Microsoft Learn Sandbox".

  2. في الصفحة الرئيسية، اختر Resource groups. يظهر الجزء "Resource groups".

  3. حدد "[sandbox resource group name]".

  4. في "Overview"، يمكنك رؤية أن ذلك النشر تم بنجاح.

    Screenshot of the Azure portal interface for the resource group overview, with the deployments section showing that one succeeded.

  5. حدد 1 Succeeded للاطلاع على تفاصيل التوزيع.

    Screenshot of the Azure portal interface for the deployments, with the one deployment listed and a succeeded status.

  6. حدد عملية النشر التي تُسمى "main" لمعرفة الموارد التي تم نشرها، ثم حدد "Deployment details" لتوسيعها. في هذه الحالة، يوجد حساب COSMOS DB وقاعدة بيانات وحاوية مدرجة.

    Screenshot of the Azure portal interface for the specific deployment, with three Cosmos DB resources listed.

  7. اترك الصفحة مفتوحة في المتصفح. سوف تتحقق من عمليات التوزيع مرة أخرى في وقت لاحق.