التمرين - إنشاء فرع ودمجه

مكتمل

بالعودة إلى شركة الألعاب، يخطط مطورو مواقع الويب الخاصة بك لإضافة قاعدة بيانات Azure Cosmos DB جديدة لتخزين البيانات حول الألعاب التي تبيعها الشركة. طلب منك المطورون تحديث تعليمة Bicep البرمجية لإضافة موارد Cosmos DB. ومع ذلك، فهم ليسوا على استعداد لإجراء التغييرات بعد. إنهم يريدونك فقط أن تحصل على التغييرات جاهزة عندما ينتهون من إجراء التعديلات.

في هذا التمرين، سوف تضيف وحدة Bicep جديدة إلى فرع من مستودعك. أثناء العملية، ستقوم بما يلي:

  • إنشاء فرع والتبديل إليه.
  • تغيير تعليمة Bicep البرمجية الخاصة بك على الفرع.
  • قم بالتبديل مرة أخرى إلى الفرع الرئيسي الخاص بك.
  • قم بدمج الفرع الخاص بك إلى الفرع الرئيسي.

إنشاء فرع في المستودع الخاص بك وسحبه

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

    git checkout -b add-database
    
  2. يمكنك تشغيل الأمر التالي للتحقق من حالة المستودع:

    git status
    

    يبدو الإخراج مشابهاً للمثال التالي:

    On branch add-database
    nothing to commit, working tree clean
    

    يخبرك الخط الأول للإخراج أن Git موجود في فرع قاعدة البيانات الإضافية.

  3. في Visual Studio Code، انظر إلى شريط المعلومات في الجزء السفلي، الجانب الأيسر من النافذة. لاحظ تغيير اسم الفرع إلى قاعدة بيانات إضافية.

    كما هو الحال مع أوامر Git الأخرى التي قمت بتشغيلها، تظل Visual Studio Code محدثة بالتغييرات في مستودع Git الخاص بك، بما في ذلك عند قيامك بسحب فرع.

تحديث ملف في الفرع الخاص بك

الآن بعد أن قمت بإنشاء فرع، ستضيف وحدة Bicep جديدة لحساب Azure Cosmos DB لموقع الويب الخاص بك.

  1. في المجلد الفرعي للوحدات النمطية لمجلد التوزيع، أنشئ ملفا جديدا باسم cosmos-db.bicep.

  2. افتح ملف cosmos-db.bicep الفارغ وقم بحفظه حتى تتمكن Visual Studio Code من تحميل أدوات Bicep.

  3. نسخ التعليمة البرمجية التالية إلى cosmos-db.bicep:

    @description('The Azure region into which the resources should be deployed.')
    param location string
    
    @description('The type of environment. This must be nonprod or prod.')
    @allowed([
      'nonprod'
      'prod'
    ])
    param environmentType string
    
    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string
    
    var cosmosDBDatabaseName = 'ProductCatalog'
    var cosmosDBDatabaseThroughput = (environmentType == 'prod') ? 1000 : 400
    var cosmosDBContainerName = 'Products'
    var cosmosDBContainerPartitionKey = '/productid'
    
    resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    
    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-15' = {
      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: {}
        }
      }
    }
    
  4. قم بحفظ وإغلاق ملف cosmos-db.bicep.

  5. افتح ملف main.bicep.

  6. إضافة تعريفات المعلمة التالية أسفل تعريف معلمة appServiceAppName:

    @description('The name of the Cosmos DB account. This name must be globally unique.')
    param cosmosDBAccountName string = 'toyweb-${uniqueString(resourceGroup().id)}'
    
  7. إضافة تعريف الوحدة التالية أسفل تعريف الوحدةappService:

    module cosmosDB 'modules/cosmos-db.bicep' = {
      name: 'cosmos-db'
      params: {
        location: location
        environmentType: environmentType
        cosmosDBAccountName: cosmosDBAccountName
      }
    }
    
  8. قم بحفظ وإغلاق ملف main.bicep.

مراجعة الاختلافات وتثبيت التغييرات

بعد مراجعة اختلافات الملف، قم بإعداد التغييرات وتنفيذها. يمكنك اختيار ما إذا كنت تريد استخدام Git CLI أو Visual Studio Code لتثبيت الملفات. يستخدم هذا المثال Git CLI.

  1. باستخدام التحكم بالمصادر في Visual Studio Code، انظر إلى الاختلافات لكلا الملفين.

    لاحظ الخطوط المتغيرة المميزة في ملف main.bicep.

  2. راجع الملفات الجاهزة للتثبيت.

    git status
    

    سيبدو الإخراج مثل المثال التالي.

    On branch add-database
     Changes not staged for commit:
       (use "git add <file>..." to update what will be committed)
       (use "git restore <file>..." to discard changes in working directory)
             modified:   deploy/main.bicep
    
     Untracked files:
       (use "git add <file>..." to include in what will be committed)
             deploy/modules/cosmos-db.bicep
    
     no changes added to commit (use "git add" and/or "git commit -a")
    
  3. تنظيم التغييرات لكلا الملفين.

    git add .
    

    تقوم النقطة (.) بعرض جميع الملفات التي تم تغييرها.

  4. التزم بالتغييرات.

    git commit --message "Add Cosmos DB module"
    

    سيبدو الإخراج مثل المثال التالي.

    [add-database 513f700] Add Cosmos DB module
      2 files changed, 71 insertions(+)
      create mode 100644 deploy/modules/cosmos-db.bicep
    

تبديل الفروع

الآن بعد إجراء التغييرات على الفرع الخاص بك، يمكنك التحقق من أن التغييرات مرئية فقط في فرع قاعدة البيانات الإضافية.

  1. قم بسحب الفرع الرئيسي. يمكنك اختيار أحد النهجين التاليين:

    • في نافذة الوحدة الطرفية لـ Visual Studio Code، أدخل الأمر التالي:

      git checkout main
      
    • في شريط معلومات Visual Studio Code في أسفل النافذة، حدد اسم الفرع الذي يعرض حالياً قاعدة البيانات الإضافية.

      تظهر قائمة الفروع. حدد الفرع الرئيسي.

  2. في جزء مستكشف Visual Studio Code، افتح ملف main.bicep.

    لاحظ أنه لم يتم تضمين أي من تغييرات Azure Cosmos DB التي أجريتها. الآن بعد أن قمت بالتبديل إلى الفرع الرئيسي، فإن وحدة قاعدة البيانات ليست هناك. لا تقلق، يتم تخزينها بأمان على فرع قاعدة البيانات الإضافية.

دمج الفرع الخاص بك

قام فريق موقع الويب الخاص بك باختبار التغييرات، وهو الآن جاهز لتشغيل موقع الويب المحدث مع تضمين قاعدة بيانات Azure Cosmos DB. ستقوم بدمج فرع قاعدة البيانات الإضافية في الفرع الرئيسي.

  1. تحقق من أنك في الفرع الرئيسي من خلال تشغيل git status و من خلال النظر إلى اسم الفرع في شريط المعلومات.

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

    git merge add-database
    
  3. في جزء مستكشف Visual Studio Code، افتح ملف main.bicep.

    لاحظ أن وحدة قاعدة البيانات تظهر الآن في الملف. لقد قمت الآن بتحديث ملفات Bicep المعروفة الخاصة بك، في الفرع الرئيسي الخاص بك، لتضمين التغييرات من فرع قاعدة البيانات الإضافية.

  4. في محطة Visual Studio Code الطرفية، أدخل الأمر التالي لحذف فرع قاعدة البيانات الإضافية لأنك لم تعد بحاجة إليه:

    git branch -d add-database