إنشاء ملف معلمات لتوزيع Bicep
توضح هذه المقالة كيفية إنشاء ملف معلمات، والذي يمكنك استخدامه بدلا من تمرير المعلمات كقيم مضمنة في البرنامج النصي الخاص بك. يمكنك استخدام إما ملف معلمات Bicep مع .bicepparam
ملحق الملف أو ملف معلمات JSON الذي يحتوي على قيمة المعلمة.
إشعار
يتم دعم ملفات معلمات Bicep فقط في إصدار Bicep CLI 0.18.4 أو أحدث، وإصدار Azure CLI 2.47.0 أو أحدث، والإصدار 9.7.1 من Azure PowerShell أو أحدث.
يمكن أن يحتوي ملف Bicep واحد على ملفات معلمات Bicep متعددة مقترنة به. ومع ذلك، كل ملف معلمات Bicep مخصص لملف Bicep معين واحد. يمكنك إنشاء هذه العلاقة عن طريق تطبيق العبارة using
داخل ملف معلمات Bicep.
يمكنك تحويل ملفات معلمات Bicep برمجيا إلى ملفات معلمات JSON التي يمكنك نشرها باستخدام ملف Bicep. لمزيد من المعلومات، انظر build-params
. يمكنك أيضا إلغاء تحويل ملف معلمات JSON برمجيا إلى ملف معلمات Bicep. لمزيد من المعلومات، انظر decompile-params
.
ملف المعلمات
يستخدم ملف المعلمات التنسيق التالي:
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
يمكنك تطبيق العبارة using
باستخدام ملف Bicep وقوالب JSON Azure Resource Manager ووحدات Bicep النمطية ومواصفات القالب. على سبيل المثال:
using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0'
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...
لمزيد من المعلومات، راجع استخدام عبارة .
من الممكن استخدام التعبيرات المحتوية القيمة الافتراضية. على سبيل المثال:
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
يمكنك الرجوع إلى متغيرات البيئة كقيم معلمات. على سبيل المثال:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
يمكنك تعريف المتغيرات واستخدامها. يجب استخدام Bicep CLI الإصدار 0.21.X أو أحدث لاستخدام المتغيرات في .bicepparam
الملفات. انظر الأمثلة التالية:
using './main.bicep'
var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'
var testSettings = {
instanceSize: 'Small'
instanceCount: 1
}
var prodSettings = {
instanceSize: 'Large'
instanceCount: 4
}
param environmentSettings = {
test: testSettings
prod: prodSettings
}
إشعار
يحفظ ملف المعلمات قيم المعلمات كنص عادي. لأسباب أمنية، لا نوصي باستخدام هذا الأسلوب مع قيم حساسة مثل كلمات المرور.
إذا كنت بحاجة إلى تمرير معلمة بقيمة حساسة، يجب الاحتفاظ بالقيمة في key vault. بدلا من إضافة قيمة حساسة إلى ملف المعلمات، استخدم الدالة getSecret
لاستردادها. لمزيد من المعلومات، راجع استخدام Azure Key Vault لتمرير سر كمعلمة أثناء نشر Bicep.
تنسيقات نوع المعلمة
يوضح المثال التالي تنسيقات أنواع المعلمات المختلفة: السلسلة والعدد الصحيح والقيم المنطقية والصفيف والعنصر.
using './main.bicep'
param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
'value 1'
'value 2'
]
param exampleObject = {
property1: 'value 1'
property2: 'value 2'
}
استخدم بناء جملة Bicep للإعلان عن الكائنات والصفائف.
اسم الملف
ملحق الملف لملف معلمات Bicep هو .bicepparam
.
للنشر في بيئات متعددة، يمكنك إنشاء أكثر من ملف معلمات واحد. عند استخدام ملفات معلمات متعددة، قم بتسميةها وفقا لاستخدامها. على سبيل المثال، لنشر الموارد، استخدم التسمية main.dev.bicepparam للتطوير والتسمية main.prod.bicepparam للإنتاج.
تعريف قيم المعلمات
لتحديد كيفية تعريف أسماء المعلمات والقيم، افتح ملف Bicep. انظر إلى قسم المعلمات في ملف Bicep. توضح الأمثلة التالية المعلمات من ملف Bicep المسمى main.bicep
:
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
في ملف المعلمات، ابحث عن اسم كل معلمة. يجب أن تتطابق أسماء المعلمات في ملف المعلمات مع أسماء المعلمات في ملف Bicep الخاص بك.
using 'main.bicep'
param storagePrefix
param storageAccountType
تربط using
العبارة ملف معلمات Bicep إلى ملف Bicep. لمزيد من المعلومات، راجع استخدام عبارة .
عند كتابة الكلمة الأساسية param
في Visual Studio Code، فإنه يطالبك بالمعلمات المتوفرة ووصفها من ملف Bicep المرتبط.
عند المرور فوق param
اسم، يمكنك مشاهدة نوع بيانات المعلمة ووصفها.
راجع نوع المعلمة، لأن أنواع المعلمات في ملف المعلمات يجب أن تستخدم نفس أنواع ملف Bicep الخاص بك. في هذا المثال، كلا النوعين من المعلمات هما سلاسل:
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
تحقق من ملف Bicep بحثا عن المعلمات التي تتضمن قيمة افتراضية. إذا كانت المعلمة تحتوي على قيمة افتراضية، يمكنك توفير قيمة في ملف المعلمات، ولكنها غير مطلوبة. تتجاوز قيمة ملف المعلمات القيمة الافتراضية لملف Bicep.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep uses default value if not provided.
لمعرفة ما إذا كانت هناك أي قيود مثل الحد الأقصى للطول، تحقق من القيم المسموح بها لملف Bicep. تحدد القيم المسموح بها نطاق القيم التي يمكنك توفيرها لمعلمة. في هذا المثال، storagePrefix
يمكن أن يكون بحد أقصى 11 حرفا، storageAccountType
ويجب تحديد قيمة مسموح بها.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
إنشاء ملف المعلمات
يمكنك إنشاء ملف معلمات باستخدام إما Visual Studio Code أو Bicep CLI. تسمح لك كلتا الأدوتين باستخدام ملف Bicep لإنشاء ملف معلمات. راجع إنشاء ملف معلمات لأسلوب Visual Studio Code وإنشاء ملف معلمات لأسلوب Bicep CLI.
إنشاء ملف معلمات Bicep
من Bicep CLI، يمكنك إنشاء ملف معلمات Bicep في ملف معلمات JSON. لمزيد من المعلومات، راجع إنشاء ملف معلمات.
نشر ملف Bicep مع ملف المعلمات
Azure CLI
من Azure CLI، يمكنك تمرير ملف معلمات مع نشر ملف Bicep الخاص بك.
يمكنك نشر ملف Bicep باستخدام ملف معلمات Bicep مع الإصدار 2.53.0 من Azure CLI أو أحدث وإصدار Bicep CLI 0.22.X أو أحدث. باستخدام العبارة using
داخل ملف معلمات Bicep، ليست هناك حاجة لتوفير --template-file
مفتاح التبديل عند تحديد ملف معلمات Bicep للتبديل --parameters
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
يمكنك استخدام المعلمات المضمنة وملف معلمات الموقع في نفس عملية النشر. على سبيل المثال:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
لمزيد من المعلومات، راجع نشر ملفات Bicep باستخدام Azure CLI.
Azure PowerShell
من Azure PowerShell، مرر ملف معلمات محلي باستخدام المعلمة TemplateParameterFile
.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
يمكنك استخدام المعلمات المضمنة وملف معلمات الموقع في نفس عملية النشر. على سبيل المثال:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
لمزيد من المعلومات، راجع نشر ملفات Bicep باستخدام Azure PowerShell. لنشر .bicep
الملفات، تحتاج إلى الإصدار 5.6.0 من Azure PowerShell أو أحدث.
أسبقية المعلمة
يمكنك استخدام المعلمات المضمنة وملف معلمات محلي في نفس عملية التوزيع. على سبيل المثال، يمكنك تحديد بعض القيم في ملف المعلمات المحلية وإضافة قيم أخرى مضمنة أثناء النشر. إذا قمت بتوفير قيم لمعلمة في كل من ملف المعلمات المحلية والمضمنة، فإن القيمة المضمنة لها الأسبقية.
على الرغم من أن ملفات معلمات Bicep الخارجية غير مدعومة حاليا، يمكنك استخدام ملف معلمات JSON خارجي عن طريق توفير URI للملف. عند استخدام ملف معلمات خارجي، قم بتوفير كافة قيم المعلمات في الملف الخارجي. عند استخدام ملف خارجي، لا يمكنك تمرير قيم أخرى مضمنة أو من ملف محلي، ويتم تجاهل جميع المعلمات المضمنة.
تعارضات اسم المعلمة
إذا كان ملف Bicep الخاص بك يتضمن معلمة بنفس اسم إحدى المعلمات في أمر Azure PowerShell، يقدم Azure PowerShell المعلمة من ملف Bicep الخاص بك مع FromTemplate
postfix. على سبيل المثال، إذا تعارضت معلمة مسماة ResourceGroupName
في ملف Bicep مع المعلمة ResourceGroupName
New-AzResourceGroupDeployment
في cmdlet، فستتم مطالبتك بتوفير قيمة ل ResourceGroupNameFromTemplate
. لتجنب هذا الالتباس، استخدم أسماء المعلمات التي لا تُستخدم لأوامر التوزيع.
المحتوى ذو الصلة
- لمزيد من المعلومات حول كيفية تحديد المعلمات في ملف Bicep، راجع المعلمات في Bicep.
- للحصول على القيم الحساسة، راجع استخدام Azure Key Vault لتمرير قيمة المعلمة الآمنة أثناء التوزيع.