إعلان المورد في Bicep

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

إعلان

إضافة إعلان مورد باستخدام resource الكلمة الأساسية. تُحدد اسمًا رمزيًا للمورد. لا يكون الاسم الرمزي نفس اسم المورد. يمكنك استخدام الاسم الرمزي للإشارة إلى المورد في أي أجزاء أخرى من ملف Bicep.

resource <symbolic-name> '<full-type-name>@<api-version>' = {
  <resource-properties>
}

لذلك، يمكن أن يبدأ إعلان حساب تخزين بما يلي:

resource stg 'Microsoft.Storage/storageAccounts@2021-04-01' = {
  ...
}

الأسماء الرمزية الحساسة لحالة الأحرف. قد تحتوي على أحرف وأرقام وتسطيرات سفلية (_). لا يمكن أن تبدأ الأسماء برقم. لا يمكن أن يكون للمورد نفس اسم المعلمة، أو الوحدة النمطية، أو المتغير.

للحصول على أنواع الموارد المتوفرة والإصدار، راجعمرجع مورد Bicep لا يدُعم Bicep apiProfile وهو الأمر المتاح على قوالب إدارة الموارد في Azure (ARM templates) JSON يمكنك أيضا تعريف موارد موفر قابلية توسعة Bicep. لمزيد من المعلومات، راجع موفر Kubernetes القابل للتوسعة في Bicep.

لنشر مورد مشروط، اختر ifبناء جملة للمزيد من المعلومات، راجع التوزيع المشروط في Bicep.

resource <symbolic-name> '<full-type-name>@<api-version>' = if (condition) {
  <resource-properties>
}

لتوزيع أكثر من مثيل واحد من أي مورد، استخدم forبناء الجملة. يمكنك استخدام batchSize مصمم لتحديد ما إذا كانت المثيلات موزعة بشكل تسلسلي أو بالتوازي. للمزيد من المعلومات، راجع تكرار حلقي في Bicep.

@batchSize(int) // optional decorator for serial deployment
resource <symbolic-name> '<full-type-name>@<api-version>' = [for <item> in <collection>: {
  <properties-to-repeat>
}]

يمكنك أيضًا استخدام for لبناء الجملة على خصائص المورد لإنشاء صفيف.

resource <symbolic-name> '<full-type-name>@<api-version>' = {
  properties: {
    <array-property>: [for <item> in <collection>: <value-to-repeat>]
  }
}

اسم المورد

لكل مورد اسم. عند تعيين اسم المورد، انتبه إلى القواعد والقيود الخاصة بأسماء الموارد.

resource stg 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'examplestorage'
  ...
}

يمكنك بشكل عام، تعيين الاسم إلى معلمة بحيث يمكنك نقل القيم المختلفة في أثناء التوزيع.

@minLength(3)
@maxLength(24)
param storageAccountName string

resource stg 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: storageAccountName
  ...
}

‏‏الموقع

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

resource stg 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'examplestorage'
  location: 'eastus'
  ...
}

يمكنك في العادة، تعيين الموقع إلى معلمة بحيث يمكنك التوزيع إلى مواقع مختلفة.

param location string = resourceGroup().location

resource stg 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'examplestorage'
  location: location
  ...
}

تُدعم أنواع الموارد المختلفة في مواقع مختلفة. للحصول على المواقع المعتمدة لخدمة Azure، راجع المنتجات المتاحة حسب المنطقة. للحصول على المواقع المعتمدة لنوع أي مورد، استخدم Azure PowerShell أو Azure CLI.

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
  | Where-Object ResourceTypeName -eq batchAccounts).Locations

علامات

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

الهويات المُدارة لموارد Azure

تُدعم بعض الموارد الهويات المدارة لدعم موارد Azure تمتلك هذه الموارد عنصر تحديد الهوية في المستوى الجذري لتعريف المورد.

يمكنك استخدام الهويات المعينة من قبل النظام أو التي تم تعيينها من قبل المستخدم.

يوضح المثال التالي كيفية تهيئة هوية معينة من قبل النظام لنظام مجموعة خدمة Azure Kubernetes.

resource aks 'Microsoft.ContainerService/managedClusters@2020-09-01' = {
  name: clusterName
  location: location
  tags: tags
  identity: {
    type: 'SystemAssigned'
  }

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

param userAssignedIdentity string

resource vm 'Microsoft.Compute/virtualMachines@2020-06-01' = {
  name: vmName
  location: location
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '${userAssignedIdentity}': {}
    }
  }

خصائص مقصورة على الموارد

تُعمم الخصائص السابقة على معظم أنواع الموارد. بعد تعيين هذه القيم، تحتاج إلى تعيين الخصائص الخاصة بنوع المورد الذي تقوم بتوزيعه.

استخدم intellisense أو مرجع القالب لتحديد الخصائص المتاحة والخصائص المطلوبة. يحدد المثال التالي الخصائص المتبقية لحساب تخزين.

resource stg 'Microsoft.Storage/storageAccounts@2019-06-01' = {
  name: 'examplestorage'
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
    tier: 'Standard'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

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