دالات الملف لـ Bicep

توضح هذه المقالة وظائف Bicep لتحميل المحتوى من الملفات الخارجية.

loadFileAsBase64

loadFileAsBase64(filePath)

تحميل الملف كسلسلة base64.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
filePath ‏‏نعم‬ سلسلة المسار إلى ملف التحميل. المسار نسبة إلى ملف Bicep المنشور. لا يمكن أن يتضمن متغيرات.

الملاحظات

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

تتطلب هذه الدالة إصدار Bicep CLI 0.4.X أو أعلى.

الحد الأقصى المسموح به لحجم الملف هو 96 كيلو بايت.

قيمة الإرجاع

الملف كسلسلة base64.

loadJsonContent

loadJsonContent(filePath, [jsonPath], [encoding])

تحميل ملف JSON المحدد ككائن Any.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
filePath ‏‏نعم‬ سلسلة المسار إلى ملف التحميل. المسار نسبة إلى ملف Bicep المنشور. لا يمكن أن يتضمن متغيرات.
مسار json لا سلسلة تعبير JSONPath لتحديد تحميل جزء فقط من الملف.
الترميز لا سلسلة ترميز الملف. القيمة الافتراضية هي utf-8. الخيارات المتاحة هي: iso-8859-1 أو us-ascii أو utf-16 أو utf-16BE أو utf-8.

الملاحظات

استخدم هذه الدالة عندما يكون لديك محتوى JSON أو محتوى JSON تم تصغيره يتم تخزينه في ملف منفصل. بدلا من تكرار محتوى JSON في ملف Bicep، قم بتحميل المحتوى باستخدام هذه الدالة. يمكنك تحميل جزء من ملف JSON عن طريق تحديد مسار JSON. يتم تحميل الملف عند تحويل الملف Bicep برمجيًا إلى قالب JSON. لا يمكنك تضمين المتغيرات في مسار الملف لأنه لم يتم حلها عند التحويل البرمجي إلى القالب. أثناء النشر، يحتوي قالب JSON على محتويات الملف كسلسلة مشفرة.

في VS Code، تتوفر خصائص الكائن المحملة كخصائص تحسس. على سبيل المثال، يمكنك إنشاء ملف بقيم لمشاركته عبر العديد من ملفات Bicep. يظهر مثال في هذه المقالة.

تتطلب هذه الدالة إصدار Bicep CLI 0.7.X أو أعلى.

الحد الأقصى المسموح به لحجم الملف هو 1,048,576 حرفا، بما في ذلك نهايات الأسطر.

قيمة الإرجاع

محتويات الملف كعنصر Any.

الأمثلة

ينشئ المثال التالي ملف JSON يحتوي على قيم لمجموعة أمان شبكة اتصال.

{
  "description": "Allows SSH traffic",
  "protocol": "Tcp",
  "sourcePortRange": "*",
  "destinationPortRange": "22",
  "sourceAddressPrefix": "*",
  "destinationAddressPrefix": "*",
  "access": "Allow",
  "priority": 100,
  "direction": "Inbound"
}

تحميل هذا الملف وتحويله إلى كائن JSON. يمكنك استخدام الكائن لتعيين قيم للمورد.

param location string = resourceGroup().location

var nsgconfig = loadJsonContent('nsg-security-rules.json')

resource newNSG 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
  name: 'example-nsg'
  location: location
  properties: {
    securityRules: [
      {
        name: 'SSH'
        properties: nsgconfig
      }
    ]
  }
}

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

loadYamlContent

loadYamlContent(filePath, [pathFilter], [encoding])

تحميل ملف YAML المحدد كعنصر Any.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
filePath ‏‏نعم‬ سلسلة المسار إلى ملف التحميل. المسار نسبة إلى ملف Bicep المنشور. لا يمكن أن يتضمن متغيرات.
pathFilter لا سلسلة عامل تصفية المسار هو تعبير JSONPath لتحديد أنه يتم تحميل جزء فقط من الملف.
الترميز لا سلسلة ترميز الملف. القيمة الافتراضية هي utf-8. الخيارات المتاحة هي: iso-8859-1 أو us-ascii أو utf-16 أو utf-16BE أو utf-8.

الملاحظات

استخدم هذه الدالة عندما يكون لديك محتوى YAML أو محتوى YAML تم تصغيره يتم تخزينه في ملف منفصل. بدلا من تكرار محتوى YAML في ملف Bicep، قم بتحميل المحتوى باستخدام هذه الدالة. يمكنك تحميل جزء من ملف YAML عن طريق تحديد عامل تصفية مسار. يتم تحميل الملف عند تحويل ملف Bicep برمجيا إلى قالب YAML. لا يمكنك تضمين المتغيرات في مسار الملف لأنه لم يتم حلها عند التحويل البرمجي إلى القالب. أثناء النشر، يحتوي قالب YAML على محتويات الملف كسلسلة ذات تعليمات برمجية مضمنة.

في VS Code، تتوفر خصائص الكائن المحملة كخصائص تحسس. على سبيل المثال، يمكنك إنشاء ملف بقيم لمشاركته عبر العديد من ملفات Bicep. يظهر مثال في هذه المقالة.

تتطلب هذه الدالة إصدار Bicep CLI 0.16.X أو أعلى.

الحد الأقصى المسموح به لحجم الملف هو 1,048,576 حرفا، بما في ذلك نهايات الأسطر.

قيمة الإرجاع

محتويات الملف كعنصر Any.

الأمثلة

ينشئ المثال التالي ملف YAML يحتوي على قيم لمجموعة أمان شبكة.

description: "Allows SSH traffic"
protocol: "Tcp"
sourcePortRange: "*"
destinationPortRange: "22"
sourceAddressPrefix: "*"
destinationAddressPrefix: "*"
access: "Allow"
priority: 100
direction: "Inbound"

تحميل هذا الملف وتحويله إلى كائن JSON. يمكنك استخدام الكائن لتعيين قيم للمورد.

param location string = resourceGroup().location

var nsgconfig = loadYamlContent('nsg-security-rules.yaml')

resource newNSG 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
  name: 'example-nsg'
  location: location
  properties: {
    securityRules: [
      {
        name: 'SSH'
        properties: nsgconfig
      }
    ]
  }
}

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

loadTextContent

loadTextContent(filePath, [encoding])

تحميل محتوى الملف المحدد كسلسلة.

مساحة الاسم: sys.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
filePath ‏‏نعم‬ سلسلة المسار إلى ملف التحميل. المسار نسبة إلى ملف Bicep المنشور. لا يمكن أن يحتوي على متغيرات.
الترميز لا سلسلة ترميز الملف. القيمة الافتراضية هي utf-8. الخيارات المتاحة هي: iso-8859-1 أو us-ascii أو utf-16 أو utf-16BE أو utf-8.

الملاحظات

استخدم هذه الدالة عندما يكون لديك محتوى مخزن في ملف منفصل. يمكنك تحميل المحتوى بدلا من تكراره في ملف Bicep. على سبيل المثال، يمكنك تحميل برنامج نصي للنشر من ملف. يتم تحميل الملف عند تحويل الملف Bicep برمجيًا إلى قالب JSON. لا يمكنك تضمين أي متغيرات في مسار الملف لأنه لم يتم حلها عند التحويل البرمجي إلى القالب. أثناء النشر، يحتوي قالب JSON على محتويات الملف كسلسلة مشفرة.

استخدم الدالة loadJsonContent() لتحميل ملفات JSON.

تتطلب هذه الدالة إصدار Bicep CLI 0.4.X أو أعلى.

الحد الأقصى المسموح به لحجم الملف هو 131,072 حرفًا، بما في ذلك نهايات الأسطر.

قيمة الإرجاع

محتويات الملف كسلسلة.

الأمثلة

المثال التالي به تحميل برنامج نصي من ملف ويستخدمه من أجل برنامج نصي للنشر.

resource exampleScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
  name: 'exampleScript'
  location: resourceGroup().location
  kind: 'AzurePowerShell'
  identity: {
    type: 'UserAssigned'
    userAssignedIdentities: {
      '/subscriptions/{sub-id}/resourcegroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{id-name}': {}
    }
  }
  properties: {
    azPowerShellVersion: '8.3'
    scriptContent: loadTextContent('myscript.ps1')
    retentionInterval: 'P1D'
  }
}

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