عوامل تشغيل موصل Bicep
يتم استخدام عوامل تشغيل الموصل للوصول إلى الموارد التابعة، والخصائص على الكائنات، والعناصر في صفيف. يمكنك أيضاً استخدام موصل الخاصية لاستخدام بعض الدوال.
عامل تشغيل | الاسم |
---|---|
[] |
موصل الفهرس |
. |
موصل الدالة |
:: |
موصل المورد المتداخل |
. |
موصل الخاصية |
موصل الفهرس
array[integerIndex]
object['stringIndex']
استخدم موصل الفهرس للحصول على عنصر من صفيف أو خاصية من كائن.
بالنسبة للصفيف، قم بتوفير الفهرس كعدد صحيح. يطابق العدد الصحيح الموضع المستند إلى الصفر للعنصر المراد استرداده.
بالنسبة للكائن، قم بتوفير الفهرس كسلسلة. تطابق السلسلة اسم الكائن المراد استرداده.
يحصل المثال التالي على عنصر في صفيف.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
الإخراج من المثال:
Name | نوع | القيمة |
---|---|---|
accessorResult | سلسلة | 'Contoso' |
يحصل المثال التالي على خاصية على كائن.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
الإخراج من المثال:
Name | نوع | القيمة |
---|---|---|
accessorResult | سلسلة | "التطوير" |
موصل الدالة
resourceName.functionName()
تدعم الدالتان - getSecret وlist* - عامل تشغيل الموصل لاستدعاء الدالة. هاتان الدالتان هما الدالتان الوحيدتان اللتان تدعمان عامل تشغيل الموصل.
مثال
يشير المثال التالي إلى key vault موجود، ثم يستخدم getSecret
لتمرير سر إلى وحدة نمطية.
resource kv 'Microsoft.KeyVault/vaults@2023-07-01' existing = {
name: kvName
scope: resourceGroup(subscriptionId, kvResourceGroup )
}
module sql './sql.bicep' = {
name: 'deploySQL'
params: {
sqlServerName: sqlServerName
adminLogin: adminLogin
adminPassword: kv.getSecret('vmAdminPassword')
}
}
موصل المورد المتداخل
parentResource::nestedResource
المورد المتداخل هو مورد تم الإعلان عنه داخل مورد آخر. استخدم موصل المورد المتداخل ::
للوصول إلى الموارد المتداخلة من خارج المورد الأصلي.
ضمن المورد الأصلي، يمكنك الرجوع إلى المورد المتداخل باستخدام الاسم الرمزي فقط. لا تحتاج إلى استخدام موصل المورد المتداخل إلا عند الرجوع إلى المورد المتداخل من خارج المورد الأصل.
مثال
يوضح المثال التالي كيفية الرجوع إلى مورد متداخل من داخل المورد الأصلي ومن خارج المورد الأصلي.
resource demoParent 'demo.Rp/parentType@2024-01-01' = {
name: 'demoParent'
location: 'West US'
// Declare a nested resource within 'demoParent'
resource demoNested 'childType' = {
name: 'demoNested'
properties: {
displayName: 'The nested instance.'
}
}
// Declare another nested resource
resource demoSibling 'childType' = {
name: 'demoSibling'
properties: {
// Use symbolic name to reference because this line is within demoParent
displayName: 'Sibling of ${demoNested.properties.displayName}'
}
}
}
// Use nested accessor to reference because this line is outside of demoParent
output displayName string = demoParent::demoNested.properties.displayName
موصل الخاصية
objectName.propertyName
استخدام موصلات الخاصية للوصول إلى خصائص كائن. يمكن استخدام موصلات الخاصية مع أي كائن، بما في ذلك المعلمات والمتغيرات التي تُعد كائنات. تحصل على خطأ عند استخدام الوصول إلى الخاصية على تعبير غير كائن.
مثال
يُظهر المثال التالي متغير كائن وكيفية الوصول إلى الخصائص.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
الإخراج من المثال:
Name | نوع | القيمة |
---|---|---|
outputZ |
سلسلة | "أهلاً" |
outputQ |
integer | 42 |
بشكل عام، يمكنك استخدام موصل الخاصية مع مورد نُشر في ملف Bicep. يقوم المثال التالي بإنشاء عنوان IP عام ويستخدم موصلات الخاصية لإرجاع قيمة من المورد المنشور.
resource publicIp 'Microsoft.Network/publicIPAddresses@2023-11-01' = {
name: publicIpResourceName
location: location
properties: {
publicIPAllocationMethod: dynamicAllocation ? 'Dynamic' : 'Static'
dnsSettings: {
domainNameLabel: publicIpDnsLabel
}
}
}
// Use property accessor to get value
output ipFqdn string = publicIp.properties.dnsSettings.fqdn
الخطوات التالية
- لتشغيل الأمثلة، استخدم Azure CLI أو Azure PowerShell لنشر ملف Bicep.
- لإنشاء ملف Bicep، راجع التشغيل السريع: إنشاء ملف Bicep باستخدام Visual Studio Code.
- للحصول على معلومات حول كيفية حل أخطاء نوع Bicep، راجع أي دالة لـ Bicep.