تشغيل سريع: نشر وحدات Bicep إلى سجل الوحدة الخاصة

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

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

إذا لم يكن لديك اشتراك في Azure، فأنشئ free account قبل البدء.

للعمل مع سجلات الوحدة، يجب أن يكون لديك Bicep CLI إصدار 0.4.1008 أو أعلى. للاستخدام مع Azure CLI، يجب أن يكون لديك أيضاً إصدار Azure CLI 2.31.0 أو أحدث؛ للاستخدام مع Azure PowerShell، يجب أن يكون لديك أيضاً إصدار Azure PowerShell 7.0.0 أو إصدار أحدث.

تتم استضافة سجل Bicep على Azure Container Registry (ACR) . لإنشاء واحد، راجع بداية سريعة: إنشاء سجل حاوية باستخدام ملف Bicep.

ولإعداد بيئتك بهدف تطوير Bicep، راجع ⁧⁩تثبيت أدوات Bicep⁧⁩. بعد إكمال هذه الخطوات، سيكون لديك Visual Studio Codeوملحق Bicep أو Visual Studioوملحق Bicep.

إنشاء وحدات Bicep

الوحدة هي مجرد ملف Bicep الذي تم توزيعه من ملف Bicep آخر. يمكن استخدام أي ملف Bicep كوحدة. يمكنك استخدام ملف Bicep التالي في هذا بداية سريعة. إنه ينشئ حساب تخزين:

@minLength(3)
@maxLength(11)
param storagePrefix string

@allowed([
  'Standard_LRS'
  'Standard_GRS'
  'Standard_RAGRS'
  'Standard_ZRS'
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GZRS'
  'Standard_RAGZRS'
])
param storageSKU string = 'Standard_LRS'
param location string

var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'

resource stg 'Microsoft.Storage/storageAccounts@2021-06-01' = {
  name: uniqueStorageName
  location: location
  sku: {
    name: storageSKU
  }
  kind: 'StorageV2'
  properties: {
    supportsHttpsTrafficOnly: true
  }
}

output storageEndpoint object = stg.properties.primaryEndpoints

حفظ ملف Bicep كـ storage.bicep.

نشر الوحدات

إذا لم يكن لديك سجل حاويات Azure (ACR)، راجع المتطلبات الأساسية لإنشاء سجل. مطلوب اسم خادم تسجيل الدخول من ACR. تنسيق اسم خادم تسجيل الدخول هو: <registry-name>.azurecr.io. للحصول على اسم خادم تسجيل الدخول:

az acr show --resource-group <resource-group-name> --name <registry-name> --query loginServer

استخدم بناء الجملة التالي لنشر ملف Bicep كوحدة إلى سجل وحدة خاصة.

az bicep publish --file storage.bicep --target br:exampleregistry.azurecr.io/bicep/modules/storage:v1 --documentationUri https://www.contoso.com/exampleregistry.html

في العينة السابقة، ./storage.bicep هو ملف Bicep المراد نشره. قم بتحديث مسار الملف إذا لزم الأمر. مسار الوحدة له بناء الجملة التالي:

br:<registry-name>.azurecr.io/<file-path>:<tag>
  • br هو اسم مخطط سجل Bicep.
  • مسار الملف يُدعى repository في سجل حاوية Azure. يمكن أن يحتوي مسار الملف على مقاطع يفصل بينها حرف /. يتم إنشاء مسار الملف هذا إذا لم يكن موجوداً في السجل.
  • تُستخدم العلامة لتحديد إصدار للوحدة النمطية.

للتحقق من الوحدات المنشورة، يمكنك سرد مستودع ACR:

az acr repository list --name <registry-name> --output table

استدعاء الوحدات

لاستدعاء وحدة، أنشئ ملف Bicep جديد في Visual Studio Code. في ملف Bicep الجديد، أدخل السطر التالي.

module stgModule 'br:<registry-name>.azurecr.io/bicep/modules/storage:v1'

استبدل <اسم السجل> باسم سجل ACR الخاص بك. يستغرق الأمر بضع لحظات لاستعادة الوحدة إلى ذاكرة التخزين المؤقت المحلية. بعد استعادة الوحدة، سيزول الخط الأحمر المجعد أسفل مسار الوحدة. في نهاية السطر، أضف = ومساحة، ثم حدد الخصائص المطلوبة كما هو موضح في لقطة الشاشة التالية. يتم ملء بنية الوحدة تلقائياً.

خصائص ملحق Visual Studio Code Bicep المطلوبة

المثال التالي هو ملف Bicep مكتمل.

@minLength(3)
@maxLength(11)
param namePrefix string
param location string = resourceGroup().location

module stgModule 'br:ace1207.azurecr.io/bicep/modules/storage:v1' = {
  name: 'stgStorage'
  params: {
    location: location
    storagePrefix: namePrefix
  }
}

احفظ ملف Bicep محلياً، ثم استخدم Azure CLI أو Azure PowerShell لتوزيعه:

resourceGroupName = "{provide-a-resource-group-name}"
templateFile="{provide-the-path-to-the-bicep-file}"

az group create --name $resourceGroupName --location eastus

az deployment group create --resource-group $resourceGroupName --template-file $templateFile

من مدخل Microsoft Azure، تحقق من إنشاء حساب التخزين بنجاح.

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

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

resourceGroupName = "{provide-the-resource-group-name}"

az group delete --name $resourceGroupName

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