قالب التشغيل السريع: إنشاء ملفات Bicep باستخدام Visual Studio Code

يرشدك هذا التشغيل السريع خلال الخطوات لإنشاء ملف Bicep باستخدام Visual Studio Code. يمكنك إنشاء حساب تخزين وشبكة ظاهرية. يمكنك أيضا معرفة كيف يبسط ملحق Bicep التطوير من خلال توفير أمان النوع والتحقق من صحة بناء الجملة والإكمال التلقائي.

كما يتم دعم تجربة تأليف مماثلة في Visual Studio. راجع التشغيل السريع: إنشاء ملفات Bicep باستخدام Visual Studio.

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

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

لإعداد بيئتك لتطوير Bicep، راجع تثبيت أدوات Bicep. بعد إكمال هذه الخطوات، لديك Visual Studio Code وملحق Bicep. لديك أيضا أحدث Azure CLI أو أحدث وحدة Azure PowerShell.

إضافة قصاصة التعليمة البرمجية للموارد

تعمل VS Code مع ملحق Bicep على تبسيط التطوير من خلال توفير قصاصات برمجية محددة مسبقا. في هذا التشغيل السريع، يمكنك إضافة قصاصة برمجية تنشئ شبكة ظاهرية.

قم بتشغيل Visual Studio Code وإنشاء ملف جديد يسمى main.bicep.

في main.bicep، اكتب vnet، ثم حدد res-vnet من القائمة، ثم اضغط على [TAB] أو [ENTER].

Screenshot of adding snippet for virtual network.

تلميح

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

يحتوي ملف Bicep الآن على التعليمة البرمجية التالية:

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

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

أزل @2019-11-01، واستبدله ب @. حدد أحدث إصدار من واجهة برمجة التطبيقات.

Screenshot of updating API version.

ستقوم بإصلاح خطأ تعريف المعلمة المفقود في القسم التالي.

يمكنك أيضا تعديل هذه التعليمات البرمجية لتلبية متطلباتك. على سبيل المثال، name ليس اسما رائعا للشبكة الظاهرية. قم بتغيير الخاصية name إلى examplevnet.

name: 'exampleVNet'

إضافة المعلمة

يفتقد مقتطف التعليمات البرمجية الذي أضفته في القسم الأخير إلى تعريف معلمة.

في أعلى الملف، أضف:

param location

عند إضافة مسافة بعد الموقع، لاحظ أن intellisense يوفر أنواع البيانات المتوفرة للمعلمة. حدد سلسلة.

Screenshot of adding string type to parameter.

امنح المعلمة قيمة افتراضية:

param location string = resourceGroup().location

لمزيد من المعلومات حول الدالة المستخدمة في القيمة الافتراضية، راجع resourceGroup().

إضافة معلمة أخرى لاسم حساب التخزين بقيمة افتراضية:

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

لمزيد من المعلومات، راجع الاستنتاج و uniqueString().

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

أضف سطرا فوق المعلمة، واكتب @. يمكنك رؤية Decorators المتاح. لاحظ أن هناك مزخرفات لكل من minLength وmaxLength.

Screenshot of adding decorators to parameter.

أضف كلا المصممين وحدد حدود الأحرف:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

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

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

المعلمات الخاصة بك جاهزة للاستخدام.

إضافة مورد

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

لتعريف مورد، استخدم resource الكلمة الأساسية . أسفل الشبكة الظاهرية، اكتب resource exampleStorage:

resource exampleStorage

exampleStorage هو اسم رمزي للمورد الذي تقوم بنشره. يمكنك استخدام هذا الاسم للإشارة إلى المورد في أجزاء أخرى من ملف Bicep.

عند إضافة مسافة بعد الاسم الرمزي، يتم عرض قائمة بأنواع الموارد. تابع كتابة storageacc حتى تتمكن من تحديده من الخيارات المتوفرة.

Screenshot of selecting storage accounts for resource type.

بعد تحديد Microsoft.Storage/storageAccounts، يتم تقديم إصدارات واجهة برمجة التطبيقات المتوفرة لك. حدد أحدث إصدار. بالنسبة إلى لقطة الشاشة التالية، فهي 2023-01-01.

Screenshot of select API version for resource type.

بعد عرض الأسعار الفردي لنوع المورد، أضف = ومسافة. يتم تقديمك مع خيارات لإضافة الخصائص إلى المورد. حدد required-properties.

Screenshot of adding required properties.

يضيف هذا الخيار جميع الخصائص لنوع المورد المطلوب للنشر. بعد تحديد هذا الخيار، يحتوي حساب التخزين لديك على الخصائص التالية:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-01-01' =  {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

لقد أوشكت على الانتهاء. فقط قم بتوفير قيم لهذه الخصائص.

مرة أخرى، سيساعدك intellisense. قم بتعيين name إلى storageAccountName، وهي المعلمة التي تحتوي على اسم لحساب التخزين. بالنسبة locationإلى ، قم بتعيينه إلى location، وهو معلمة قمت بإنشائها سابقا. عند إضافة sku.name و kind، يقدم intellisense الخيارات الصالحة.

عند الانتهاء، يكون لديك:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'exampleVNet'
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

لمزيد من المعلومات حول بناء جملة Bicep، راجع بنية Bicep.

تصور الموارد

يمكنك عرض تمثيل للموارد في ملفك.

من الزاوية العلوية اليمنى، حدد الزر "المصور المرئي" لفتح عرض مصور Bicep.

Screenshot of Bicep Visualizer.

يعرض المصور المرئي الموارد المعرّفة في ملف Bicep مع معلومات تبعية المورد. لا يحتوي الموردان المحددان في هذا التشغيل السريع على علاقة تبعية، لذلك لا ترى رابطًا بين هذين المصدرين.

Screenshot of Bicep Visualizer diagram.

نشر ملف Bicep

  1. انقر بزر الماوس الأيمن فوق ملف Bicep داخل VS Code، ثم حدد Deploy Bicep file.

    Screenshot of Deploy Bicep file.

  2. في مربع النص Please enter name for deployment اكتب deployStorageAndVNet، ثم اضغط على [ENTER].

  3. من مربع قائمة Select Resource Group في الأعلى، حدد Create new Resource Group.

  4. أدخل exampleRG كاسم مجموعة الموارد، ثم اضغط على [ENTER].

  5. حدد موقعا لمجموعة الموارد، وحدد وسط الولايات المتحدة أو موقعا من اختيارك، ثم اضغط على [ENTER].

  6. من تحديد ملف معلمة، حدد بلا.

    Screenshot of Select parameter file.

يستغرق إنشاء الموارد بضع لحظات. لمزيد من المعلومات، راجع نشر ملفات Bicep باستخدام Visual Studio Code.

كما يمكنك أيضًا نشر ملف Bicep باستخدام Azure CLI أو Azure PowerShell:

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename

عند الانتهاء من عملية النشر، يجب أن ترى رسالة تشير إلى نجاح عملية النشر.

تنظيف الموارد

عندما لم تعد هناك حاجة إلى موارد Azure، استخدم الوحدة Azure CLI أو Azure PowerShell لحذف مجموعة موارد التشغيل السريع.

az group delete --name exampleRG

الخطوات التالية