إعلان المورد في Bicep
توضح هذه المقالة بناء الجملة الذي تستخدمه لإضافة مورد إلى ملف Bicep. تقتصر على 800 مورد في ملف Bicep. لمزيد من المعلومات، راجع حدود القالب.
إعلان
إضافة إعلان مورد باستخدام resource
الكلمة الأساسية. تُحدد اسمًا رمزيًا للمورد. لا يكون الاسم الرمزي نفس اسم المورد. يمكنك استخدام الاسم الرمزي للإشارة إلى المورد في أي أجزاء أخرى من ملف Bicep.
resource <symbolic-name> '<full-type-name>@<api-version>' = {
<resource-properties>
}
لذلك، يمكن أن يبدأ إعلان حساب تخزين بما يلي:
resource stg 'Microsoft.Storage/storageAccounts@2023-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@2023-04-01' = {
name: 'examplestorage'
...
}
يمكنك بشكل عام، تعيين الاسم إلى معلمة بحيث يمكنك نقل القيم المختلفة في أثناء التوزيع.
@minLength(3)
@maxLength(24)
param storageAccountName string
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageAccountName
...
}
الموقع
تتطلب العديد من الموارد اختيار موقعًا. يمكنك تحديد مدى حاجة المورد إلى موقع إما من خلال intellisense أو مرجع القالب. يضيف المثال التالي معلمة الموقع المستخدمة لحساب التخزين.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
...
}
يمكنك في العادة، تعيين الموقع إلى معلمة بحيث يمكنك التوزيع إلى مواقع مختلفة.
param location string = resourceGroup().location
resource stg 'Microsoft.Storage/storageAccounts@2023-04-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@2024-02-01' = {
name: clusterName
location: location
tags: tags
identity: {
type: 'SystemAssigned'
}
يوضح المثال التالي كيفية تهيئة أي هوية معينة من قبل المستخدم في جهاز افتراضي.
param userAssignedIdentity string
resource vm 'Microsoft.Compute/virtualMachines@2024-03-01' = {
name: vmName
location: location
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'${userAssignedIdentity}': {}
}
}
خصائص مقصورة على الموارد
تُعمم الخصائص السابقة على معظم أنواع الموارد. بعد تعيين هذه القيم، تحتاج إلى تعيين الخصائص الخاصة بنوع المورد الذي تقوم بتوزيعه.
استخدم intellisense أو مرجع القالب لتحديد الخصائص المتاحة والخصائص المطلوبة. يحدد المثال التالي الخصائص المتبقية لحساب تخزين.
resource stg 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'examplestorage'
location: 'eastus'
sku: {
name: 'Standard_LRS'
tier: 'Standard'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
الخطوات التالية
- لتوزيع مورد بشكل مشروط، راجع التوزيع الشرطي في قوالب ARM.
- للإشارة إلى مورد موجود، راجع الموارد الموجودة في Bicep.
- لمعرفة كيفية تحديد ترتيب التوزيع، راجع تبعيات الموارد في Bicep.