إنشاء موارد الشبكة الظاهرية باستخدام Bicep

تتطلب العديد من عمليات التوزيع في Azure موارد شبكة الاتصال ليتم توزيعها وتكوينها. يمكنك استخدام Bicep لتعريف موارد شبكة Azure.

الشبكات الظاهرية والشبكات الفرعية

حدد الشبكات الظاهرية عن طريق إنشاء مورد مع نوع Microsoft.Network/virtualNetworks.

تكوين الشبكات الفرعية باستخدام خاصية الشبكات الفرعية

تحتوي الشبكات الظاهرية على شبكات فرعية، وهي مجموعات منطقية من عناوين IP داخل الشبكة الظاهرية. هناك طريقتان لتعريف الشبكات الفرعية في Bicep: باستخدام الخاصية subnets على مورد الشبكة الظاهرية، وإنشاء مورد تابع بالنوع Microsoft.Network/virtualNetworks/subnets.

تحذير

تجنب تعريف الشبكات الفرعية كموارد تابعة. يمكن أن يؤدي هذا النهج إلى تعطل الموارد أثناء عمليات التوزيع اللاحقة أو عمليات التوزيع الفاشلة.

من الأفضل تعريف الشبكات الفرعية داخل تعريف الشبكة الظاهرية، كما في هذا المثال:

المثال التالي هو جزء من مثال أكبر. للحصول على ملف Bicep الذي يمكنك نشره، راجع الملف الكامل.

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: virtualNetworkName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: subnet1Name
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: subnet2Name
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

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

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

معرفات موارد الشبكة الفرعية للوصول

تحتاج غالبًا إلى الرجوع إلى معرف مورد شبكة فرعية. عند استخدام الخاصية subnets لتعريف شبكتك الفرعية، يمكنك استخدام existingالكلمة الأساسية أيضًا للحصول على مرجع مكتوب بقوة للشبكة الفرعية، ثم الوصول إلى خاصية id للشبكة الفرعية:

المثال التالي هو جزء من مثال أكبر. للحصول على ملف Bicep الذي يمكنك نشره، راجع الملف الكامل.

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: virtualNetworkName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: subnet1Name
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: subnet2Name
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }

  resource subnet1 'subnets' existing = {
    name: subnet1Name
  }

  resource subnet2 'subnets' existing = {
    name: subnet2Name
  }
}

output subnet1ResourceId string = virtualNetwork::subnet1.id
output subnet2ResourceId string = virtualNetwork::subnet2.id

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

يمكنك أيضا ضم الكلمات الأساسية existing وscope للإشارة إلى شبكة ظاهرية أو مورد شبكة فرعية في مجموعة موارد أخرى.

مجموعات أمان الشبكة

تستخدم مجموعات أمان الشبكة بشكل متكرر لتطبيق قواعد تتحكم في تدفق حركة المرور الواردة والصادرة من شبكة فرعية أو واجهة شبكة اتصال. قد يكون من الصعب تحديد عدد كبير من القواعد داخل ملف Bicep، ومشاركة القواعد عبر ملفات Bicep المتعددة. خذ بعين الاعتبار استخدام نمط ملف متغير مشترك عند العمل مع مجموعات أمان شبكة الاتصال المعقدة أو الكبيرة.

نقاط النهاية الخاصة

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

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