وظائف السلسلة لقوالب Azure Resource Manager

يوفر Resource Manager الوظائف التالية للعمل مع السلاسل في قالب Azure Resource Manager (قالب ARM):

تلميح

يوصى باستخدام Bicep لأنه يوفر نفس الإمكانات مثل قوالب ARM، وبناء الجملة أسهل في الاستخدام. لمعرفة المزيد، راجع دوال string.

قاعدة 64

base64(inputString)

إرجاع تمثيل قاعدة 64 لسلسلة الإدخال.

في Bicep، استخدم الدالة base64 .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
سلسلة خاصة بالإدخال ‏‏نعم‬ سلسلة القيمة التي يجب إرجاعها كتمثيل لقاعدة 64.

قيمة الإرجاع

سلسلة تحتوي على تمثيل لقاعدة 64.

الأمثلة

يوضح المثال التالي كيفية استخدام الدالة base64 :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageResourceGroup": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "ExistingStorage": {
      "type": "object",
      "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2021-04-01')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
إخراج القاعدة 64 السلسلة‬ b25lLCB0d28sIHRocmVl
toStringOutput السلسلة‬ واحد واثنان وثلاثة
toJsonOutput ‏‏الكائن {"واحد": "أ"، "اثنان": "ب"}

base64ToJson

base64ToJson(base64Value)

تحويل تمثيل base64 إلى كائن JSON.

في Bicep، استخدم الدالة base64ToJson .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
Base64 القيمة ‏‏نعم‬ سلسلة تمثيل base64 للتحويل إلى عنصر JSON.

قيمة الإرجاع

عنصر JSON.

الأمثلة

يستخدم المثال التالي الدالة base64ToJson لتحويل قيمة القاعدة 64:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageResourceGroup": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "ExistingStorage": {
      "type": "object",
      "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2021-04-01')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
إخراج القاعدة 64 السلسلة‬ b25lLCB0d28sIHRocmVl
toStringOutput السلسلة‬ واحد واثنان وثلاثة
toJsonOutput ‏‏الكائن {"واحد": "أ"، "اثنان": "ب"}

base64ToString

base64ToString(base64Value)

يحول تمثيل base64 إلى سلسلة.

في Bicep، استخدم الدالة base64ToString .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
Base64 القيمة ‏‏نعم‬ سلسلة تمثيل قاعدة 64 المراد تحويلها في السلسلة.

قيمة الإرجاع

سلسلة قيمة القاعدة 64 المحولة

الأمثلة

يستخدم المثال التالي الدالة base64ToString لتحويل قيمة القاعدة 64:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageResourceGroup": {
      "type": "string"
    },
    "storageAccountName": {
      "type": "string"
    }
  },
  "resources": [],
  "outputs": {
    "ExistingStorage": {
      "type": "object",
      "value": "[reference(resourceId(parameters('storageResourceGroup'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2021-04-01')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
إخراج القاعدة 64 السلسلة‬ b25lLCB0d28sIHRocmVl
toStringOutput السلسلة‬ واحد واثنان وثلاثة
toJsonOutput ‏‏الكائن {"واحد": "أ"، "اثنان": "ب"}

concat

concat(arg1, arg2, arg3, ...)

يدمج قيم سلسلة متعددة ويعيد السلسلة المتسلسلة، أو يدمج مصفوفات متعددة ويعيد الصفيف المتسلسل.

في Bicep، استخدم استنتاج السلسلة بدلا من الدالة concat() لتحسين قابلية القراءة. ومع ذلك، في بعض الحالات مثل استبدال السلسلة في سلاسل متعددة الأسطر، قد تحتاج إلى الرجوع إلى استخدام الدالة concat() أو الدالة replace() .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ سلسلة أو مجموعة السلسلة أو الصفيف الأول للتسلسل.
مزيد من الوسائط لا سلسلة أو مجموعة مزيد من السلاسل أو المصفوفات بالترتيب التسلسلي للتسلسل.

يمكن أن تأخذ هذه الدالة أي عدد من الوسيطات ويمكن أن تقبل سلاسل أو صفائف للمعلمات. ومع ذلك، لا يمكنك توفير كل من الصفائف والسلاسل المتعلقة بالمعلمات. لا يتم سوى ربط السلاسل مع سلاسل أخرى.

قيمة الإرجاع

سلسلة أو صفيف من القيم المتسلسلة.

الأمثلة

يوضح المثال التالي كيفية دمج قيمتي سلسلة وإرجاع سلسلة متصلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "prefix": {
      "type": "string",
      "defaultValue": "prefix"
    }
  },
  "resources": [],
  "outputs": {
    "concatOutput": {
      "type": "string",
      "value": "[concat(parameters('prefix'), '-', uniqueString(resourceGroup().id))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
إخراج concat السلسلة‬ prefix-5yj4yjf5mbg72

يوضح المثال التالي كيفية دمج صفيفين:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstArray": {
      "type": "array",
      "defaultValue": [
        "1-1",
        "1-2",
        "1-3"
      ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [
        "2-1",
        "2-2",
        "2-3"
      ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "return": {
      "type": "array",
      "value": "[concat(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
الرجوع صفيف ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

تحتوي على

contains(container, itemToFind)

التحقق مما إذا كان الصفيف يحتوي على قيمة أو عنصر يحتوي على مفتاح أو سلسلة تحتوي على سلسلة فرعية. تكون مقارنة السلسلة حساسة لحالة الأحرف. ومع ذلك، عند اختبار ما إذا كان عنصر يحتوي على مفتاح، تكون المقارنة غير حساسة لحالة الأحرف.

في Bicep، استخدم الدالة contains .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
حاوية ‏‏نعم‬ صفيف أو عنصر أو سلسلة القيمة التي تحتوي على العنصر للبحث عنه.
البحث عن عنصر ‏‏نعم‬ سلسلة أو كثافة العمليات القيمة التي يتعين العثور عليها.

قيمة الإرجاع

True إذا تم العثور على العنصر؛ خلاف ذلك، False.

الأمثلة

يوضح المثال التالي كيفية الاستخدام contains مع أنواع مختلفة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "OneTwoThree"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringTrue": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'e')]"
    },
    "stringFalse": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'z')]"
    },
    "objectTrue": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'one')]"
    },
    "objectFalse": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'a')]"
    },
    "arrayTrue": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'three')]"
    },
    "arrayFalse": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'four')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
stringTrue مجموعة صواب
stringFalse مجموعة خطأ
objectTrue مجموعة صواب
عنصر خطأ مجموعة خطأ
صفيف صحيح مجموعة صواب
صفيف خطأ مجموعة خطأ

dataUri

dataUri(stringToConvert)

يحول قيمة إلى بيانات URI.

في Bicep، استخدم الدالة dataUri .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToConvert ‏‏نعم‬ سلسلة القيمة التي سيتم تحويلها إلى بيانات URI.

قيمة الإرجاع

سلسلة منسقة كمعرّف بيانات URI.

الأمثلة

يحول المثال التالي قيمة إلى URI بيانات وURI بيانات إلى سلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "Hello"
    },
    "dataFormattedString": {
      "type": "string",
      "defaultValue": "data:;base64,SGVsbG8sIFdvcmxkIQ=="
    }
  },
  "resources": [],
  "outputs": {
    "dataUriOutput": {
      "value": "[dataUri(parameters('stringToTest'))]",
      "type": "string"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[dataUriToString(parameters('dataFormattedString'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
dataUriOutput السلسلة‬ data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput السلسلة‬ Hello, world!

dataUriToString

dataUriToString(dataUriToConvert)

يحول قيمة URI للبيانات المنسقة إلى سلسلة.

في Bicep، استخدم الدالة dataUriToString .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
dataUriToConvert ‏‏نعم‬ سلسلة قيمة URI للبيانات لتحويلها.

قيمة الإرجاع

سلسلة تحتوي على القيمة المحولة.

الأمثلة

يحول قالب المثال التالي قيمة إلى URI بيانات وURI بيانات إلى سلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "Hello"
    },
    "dataFormattedString": {
      "type": "string",
      "defaultValue": "data:;base64,SGVsbG8sIFdvcmxkIQ=="
    }
  },
  "resources": [],
  "outputs": {
    "dataUriOutput": {
      "value": "[dataUri(parameters('stringToTest'))]",
      "type": "string"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[dataUriToString(parameters('dataFormattedString'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
dataUriOutput السلسلة‬ data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput السلسلة‬ Hello, world!

فارغ

empty(itemToTest)

تحديد ما إذا كانت أي مصفوفة أو كائن أو سلسلة فارغة.

في Bicep، استخدم الدالة empty .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
itemToTest ‏‏نعم‬ صفيف أو عنصر أو سلسلة القيمة المستخدمة للتحقق مما إذا كانت فارغة.

قيمة الإرجاع

إرجاع True إذا كانت القيمة فارغة؛ وإلا، False.

الأمثلة

يتحقق المثال التالي من وجود صفيف وعنصر وسلسلة فارغة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": []
    },
    "testObject": {
      "type": "object",
      "defaultValue": {}
    },
    "testString": {
      "type": "string",
      "defaultValue": ""
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testArray'))]"
    },
    "objectEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testObject'))]"
    },
    "stringEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testString'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
arrayEmpty مجموعة صواب
عنصر فارغ مجموعة صواب
stringEmpty مجموعة صواب

endsWith

endsWith(stringToSearch, stringToFind)

تحديد ما إذا كانت السلسلة تنتهي بقيمة. المقارنة غير حساسة لحالة الأحرف.

في Bicep، استخدم الدالة endsWith .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToSearch ‏‏نعم‬ سلسلة القيمة التي تحتوي على العنصر للبحث عنه.
stringToFind ‏‏نعم‬ سلسلة القيمة التي يتعين العثور عليها.

قيمة الإرجاع

True إذا تطابق الحرف الأخير أو الأحرف الأخيرة من السلسلة مع القيمة؛ خلاف ذلك، False.

الأمثلة

يوضح المثال التالي كيفية استخدام كلتا الدالتين startsWith و endsWith:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "startsTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'ab')]"
    },
    "startsCapTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'A')]"
    },
    "startsFalse": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'e')]"
    },
    "endsTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'ef')]"
    },
    "endsCapTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'F')]"
    },
    "endsFalse": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'e')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
بداية صحيحة مجموعة صواب
البدء بالتجميع مجموعة صواب
startsFalse مجموعة خطأ
نهايات صحيحة مجموعة صواب
endsCapTrue مجموعة صواب
endsFalse مجموعة خطأ

أولاً

first(arg1)

إرجاع الحرف الأول من السلسلة أو العنصر الأول من الصفيف. إذا تم إعطاء سلسلة فارغة، ينتج عن الدالة سلسلة فارغة. في حالة صفيف فارغ، ترجع nullالدالة .

في Bicep، استخدم الدالة first .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو سلسلة قيمة استرداد العنصر الأول أو الحرف الأول.

قيمة الإرجاع

سلسلة من الحرف الأول أو نوع (سلسلة أو int أو صفيف أو عنصر) للعنصر الأول في صفيف.

الأمثلة

يوضح المثال التالي كيفية استخدام الدالة first مع صفيف وسلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[first(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[first('One Two Three')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
arrayOutput السلسلة‬ واحد
إخراج السلسلة السلسلة‬ O

format

format(formatString, arg1, arg2, ...)

إنشاء سلسلة منسقة مكونة من قيم الإدخال.

في Bicep، استخدم الدالة format .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
formatString ‏‏نعم‬ سلسلة سلسلة التنسيق المركب.
arg1 ‏‏نعم‬ سلسلة أو عدد صحيح أو قيمة منطقية القيمة التي يجب تضمينها في السلسلة المنسقة.
مزيد من الوسائط لا سلسلة أو عدد صحيح أو قيمة منطقية المزيد من القيم لتضمينها في السلسلة المنسقة.

الملاحظات

استخدم هذه الوظيفة لتنسيق سلسلة في قالبك. تستخدم خيارات التنسيق ذاتها مثل أسلوب System.String.Format في .NET.

الأمثلة

يوضح المثال التالي كيفية استخدام الدالة format :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "greeting": {
      "type": "string",
      "defaultValue": "Hello"
    },
    "name": {
      "type": "string",
      "defaultValue": "User"
    },
    "numberToFormat": {
      "type": "int",
      "defaultValue": 8175133
    }
  },
  "resources": [
  ],
  "outputs": {
    "formatTest": {
      "type": "string",
      "value": "[format('{0}, {1}. Formatted number: {2:N0}', parameters('greeting'), parameters('name'), parameters('numberToFormat'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
formatTest السلسلة‬ مرحبًا بالمستخدمين. الرقم المنسق: 8,175,133

guid

guid(baseString, ...)

إنشاء قيمة بتنسيق معرف فريد عمومي استناداً إلى القيم المتوفرة كمعلمات.

في Bicep، استخدم الدالة guid .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
baseString ‏‏نعم‬ سلسلة القيمة المستخدمة في دالة شفرة التجزئة لإنشاء معرف فريد عمومي.
مزيد من المعلمات حسب الحاجة لا سلسلة يمكنك إضافة العديد من السلاسل حسب الحاجة لإنشاء القيمة التي تحدد مستوى التفرد.

الملاحظات

هذه الوظيفة مفيدة عندما تحتاج إلى إنشاء قيمة بتنسيق معرّف فريد عالميًا. تقوم بتوفير قيم المعلمات التي تحد من نطاق التفرد للنتيجة. يمكنك تحديد ما إذا كان الاسم فريدا وصولا إلى الاشتراك أو مجموعة الموارد أو النشر.

القيمة التي تم إرجاعها ليست سلسلة عشوائية، بل هي نتيجة دالة تجزئة على المعلمات. القيمة التي تم إرجاعها تتكون من 36 حرفًا. إنها ليست فريدة من نوعها على مستوى العالم. لإنشاء GUID جديد لا يستند إلى قيمة التجزئة للمعلمات، استخدم الدالة newGuid .

توضح الأمثلة التالية كيفية استخدام guid لإنشاء قيمة فريدة للمستويات شائعة الاستخدام:

نطاق فريد للاشتراك

"[guid(subscription().subscriptionId)]"

فريد النطاق لمجموعة الموارد

"[guid(resourceGroup().id)]"

فريد النطاق للنشر لمجموعة الموارد

"[guid(resourceGroup().id, deployment().name)]"

guid تنفذ الدالة الخوارزمية من RFC 4122 #4.3. يمكن العثور على المصدر الأصلي في GuidUtility مع بعض التعديلات. في تنفيذ الدالة guid()namespaceId ، يتم تعيين إلى 11fb06fb-712d-4ddd-98c7-e71bbd588830، ويتم version تعيين إلى 5. يتم إنشاء القيمة عن طريق تحويل كل معلمة من الدالة guid() إلى سلسلة وتسلسلها مع - كمحددات.

قيمة الإرجاع

سلسلة تحتوي على 36 حرفًا بتنسيق معرّف فريد عالميًا.

الأمثلة

يعرض المثال التالي نتائج من guid:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [],
  "outputs": {
    "guidPerSubscription": {
      "type": "string",
      "value": "[guid(subscription().subscriptionId)]"
    },
    "guidPerResourceGroup": {
      "type": "string",
      "value": "[guid(resourceGroup().id)]"
    },
    "guidPerDeployment": {
      "type": "string",
      "value": "[guid(resourceGroup().id, deployment().name)]"
    }
  }
}

indexOf

indexOf(stringToSearch, stringToFind)

إرجاع الموضع الأساسي لقيمة داخل سلسلة. المقارنة غير حساسة لحالة الأحرف.

في Bicep، استخدم الدالة indexOf .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToSearch ‏‏نعم‬ سلسلة القيمة التي تحتوي على العنصر للبحث عنه.
stringToFind ‏‏نعم‬ سلسلة القيمة التي يتعين العثور عليها.

قيمة الإرجاع

عدد صحيح يمثل موضع العنصر المطلوب البحث عنه. القيمة على أساس الصفر. إذا لم يتم العثور على العنصر، يتم إرجاع -1.

الأمثلة

يوضح المثال التالي كيفية استخدام كلتا الدالتين indexOf و lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "firstT": {
      "type": "int",
      "value": "[indexOf('test', 't')]"
    },
    "lastT": {
      "type": "int",
      "value": "[lastIndexOf('test', 't')]"
    },
    "firstString": {
      "type": "int",
      "value": "[indexOf('abcdef', 'CD')]"
    },
    "lastString": {
      "type": "int",
      "value": "[lastIndexOf('abcdef', 'AB')]"
    },
    "notFound": {
      "type": "int",
      "value": "[indexOf('abcdef', 'z')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
غير موجود Int -1

join

join(inputArray, delimiter)

يربط مصفوفة سلسلة في سلسلة واحدة، مفصولة باستخدام محدد.

في Bicep، استخدم الدالة join .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
inputArray ‏‏نعم‬ صفيف سلسلة صفيف من السلسلة للانضمام.
المحدِّد ‏‏نعم‬ محدِّد مراد استخدامه لتقسيم السلسلة.

قيمة الإرجاع

سلسلة.

الأمثلة

يقوم المثال التالي بضم صفيف سلسلة الإدخال إلى سلاسل محددة بواسطة محددات مختلفة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "arrayString": [
      "one",
      "two",
      "three"
    ]
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "string",
      "value": "[join(variables('arrayString'), ',')]"
    },
    "secondOutput": {
      "type": "string",
      "value": "[join(variables('arrayString'), ';')]"
    }
  }
}

المخرجات من المثال السابق هي:

Name نوع القيمة‬
الإخراج الأول السلسلة‬ "واحد، اثنان، ثلاثة"
الإخراج الثاني السلسلة‬ "واحد;اثنان;ثلاثة"

json

json(arg1)

يحول سلسلة JSON صالحة إلى نوع بيانات JSON. لمزيد من المعلومات، راجع json الدالة.

في Bicep، استخدم الدالة json .

last

last(arg1)

إرجاع الحرف الأخير من السلسلة أو العنصر الأخير من المصفوفة.

في Bicep، استخدم الدالة last .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو سلسلة قيمة استرداد العنصر الأخير أو الحرف الأخير.

قيمة الإرجاع

سلسلة من الحرف الأخير أو النوع (سلسلة أو عدد صحيح أو مصفوفة أو عنصر) للعنصر الأخير في المصفوفة.

الأمثلة

يوضح المثال التالي كيفية استخدام الدالة last مع صفيف وسلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[last(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[last('One Two Three')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
arrayOutput السلسلة‬ ثلاثة
إخراج السلسلة السلسلة‬ E

lastIndexOf

lastIndexOf(stringToSearch, stringToFind)

تُرجع آخر موضع لقيمة داخل سلسلة. المقارنة غير حساسة لحالة الأحرف.

في Bicep، استخدم الدالة lastIndexOf .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToSearch ‏‏نعم‬ سلسلة القيمة التي تحتوي على العنصر للبحث عنه.
stringToFind ‏‏نعم‬ سلسلة القيمة التي يتعين العثور عليها.

قيمة الإرجاع

عدد صحيح يمثل آخر موضع للبحث عن العنصر. القيمة على أساس الصفر. إذا لم يتم العثور على العنصر، يتم إرجاع -1.

الأمثلة

يوضح المثال التالي كيفية استخدام كلتا الدالتين indexOf و lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "firstT": {
      "type": "int",
      "value": "[indexOf('test', 't')]"
    },
    "lastT": {
      "type": "int",
      "value": "[lastIndexOf('test', 't')]"
    },
    "firstString": {
      "type": "int",
      "value": "[indexOf('abcdef', 'CD')]"
    },
    "lastString": {
      "type": "int",
      "value": "[lastIndexOf('abcdef', 'AB')]"
    },
    "notFound": {
      "type": "int",
      "value": "[indexOf('abcdef', 'z')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
غير موجود Int -1

طول

length(string)

إرجاع عدد الحروف في سلسلة أو عدد العناصر في صفيف أو خصائص على مستوى الجذر في عنصر.

في Bicep، استخدم الدالة length .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
arg1 ‏‏نعم‬ صفيف أو سلسلة أو عنصر الصفيف الذي سيتم استخدامه للحصول على عدد العناصر أو السلسلة التي سيتم استخدامها للحصول على عدد الأحرف أو العنصر الذي سيتم استخدامه للحصول على عدد خصائص مستوى الجذر.

قيمة الإرجاع

عدد صحيح

الأمثلة

يوضح المثال التالي كيفية استخدام الدالة length مع صفيف وسلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "stringToTest": {
      "type": "string",
      "defaultValue": "One Two Three"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "propA": "one",
        "propB": "two",
        "propC": "three",
        "propD": {
          "propD-1": "sub",
          "propD-2": "sub"
        }
      }
    }
  },
  "resources": [],
  "outputs": {
    "arrayLength": {
      "type": "int",
      "value": "[length(parameters('arrayToTest'))]"
    },
    "stringLength": {
      "type": "int",
      "value": "[length(parameters('stringToTest'))]"
    },
    "objectLength": {
      "type": "int",
      "value": "[length(parameters('objectToTest'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

إرجاع قيمة بتنسيق معرف فريد بصفة عامة. لا يمكن استخدام هذه الوظيفة إلا في القيمة الافتراضية للمعلمة.

في Bicep، استخدم الدالة newGuid .

الملاحظات

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

تختلف الدالة newGuid عن الدالة guid لأنها لا تأخذ أي معلمات. عند استدعاء المعرّف الفريد باستخدام نفس المعامل، فإنه يُرجع نفس المعرف في كل مرة. استخدم المعرّف المميز حينما تحتاج إلى إنشاء المعرف الفريد ذاته لبيئة محددة. استخدم المعرّف الميز عندما تحتاج إلى معرف مختلف في كل مرة، مثل نشر الموارد في بيئة اختبار.

تستخدم وظيفة الدليل الجديد بنية التوجيه في .NET Framework لإنشاء المعرف الفريد العام.

إذا كنت تستخدم الخيار لإعادة نشر ناجح سابق حيث يتضمن النشر السابق معلمة تستخدم newGuid، فلن يتم تقييم المعلمة مرة أخرى. بدلا من ذلك، يعيد توزيع التراجع تلقائيا استخدام قيمة المعلمة من النشر السابق.

في بيئة الاختبار، قد تحتاج إلى نشر الموارد بشكل متكرر، والتي لا تعمل إلا لفترة قصيرة. بدلا من إنشاء أسماء فريدة، يمكنك استخدام newGuid مع uniqueString لإنشاء أسماء فريدة.

كن حذرا عند إعادة نشر قالب يعتمد على الدالة newGuid لقيمة افتراضية. عند إعادة النشر وعدم توفير قيمة للمعامل، تتم إعادة تقييم الوظيفة. إذا كنت تريد تحديث مورد موجود بدلاً من إنشاء مورد جديد، فمرر قيمة المعلمة من التوزيع السابق.

قيمة الإرجاع

سلسلة تحتوي على 36 حرفًا بتنسيق معرّف فريد عالميًا.

الأمثلة

يوضح المثال التالي معلمة بمعرف جديد:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "guidValue": {
      "type": "string",
      "defaultValue": "[newGuid()]"
    }
  },
  "resources": [
  ],
  "outputs": {
    "guidOutput": {
      "type": "string",
      "value": "[parameters('guidValue')]"
    }
  }
}

يختلف الإخراج من المثال السابق لكل عملية توزيع ولكنه سيكون مشابهًا لـ:

Name نوع القيمة‬
خرج المعرّف الفريد سلسلة b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

يستخدم المثال التالي الدالةnewGuid لإنشاء اسم فريد لحساب التخزين. قد يعمل هذا القالب لبيئة الاختبار حيث يوجد حساب التخزين لفترة قصيرة ولا يتم نشره مرة أخرى:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "guidValue": {
      "type": "string",
      "defaultValue": "[newGuid()]"
    }
  },
  "variables": {
    "storageName": "[concat('storage', uniqueString(parameters('guidValue')))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('storageName')]",
      "location": "West US",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "nameOutput": {
      "type": "string",
      "value": "[variables('storageName')]"
    }
  }
}

يختلف الإخراج من المثال السابق لكل عملية توزيع ولكنه سيكون مشابهًا لـ:

Name نوع القيمة‬
خرج الاسم سلسلة storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

إرجاع سلسلة محاذية لليمين بإضافة أحرف إلى اليسار حتى الوصول إلى الطول الإجمالي المحدد.

في Bicep، استخدم الدالة padLeft .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
valueToPad ‏‏نعم‬ سلسلة أو كثافة العمليات محاذاة القيمة لليمين
إجمال الطول ‏‏نعم‬ العدد الصحيح إجمالي عدد الأحرف في السلسلة التي تم إرجاعها.
paddingCharacter لا حرف واحد الحرف المراد استخدامه للحشو الأيسر حتى الوصول إلى الطول الإجمالي. القيمة الافتراضية هي مسافة.

إذا كانت السلسلة الأصلية أطول من عدد الأحرف المراد حشوها، فلن تتم إضافة أي أحرف أخرى.

قيمة الإرجاع

سلسلة تحتوي على عدد من الأحرف المحددة على الأقل.

الأمثلة

يوضح المثال التالي كيفية إضافة الحرف الصفري حتى يصل إلى إجمالي عدد الأحرف للوحة قيمة المعلمة التي يوفرها المستخدم:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "123"
    }
  },
  "resources": [],
  "outputs": {
    "stringOutput": {
      "type": "string",
      "value": "[padLeft(parameters('testString'),10,'0')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
إخراج السلسلة السلسلة‬ 0000000123

استبدل

replace(originalString, oldString, newString)

إرجاع سلسلة جديدة مع جميع مثيلات سلسلة واحدة يتم استبدالها بسلسلة أخرى.

في Bicep، استخدم الدالة replace .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
السلسلة الأصلية ‏‏نعم‬ سلسلة القيمة التي تحتوي على جميع مثيلات سلسلة واحدة تم استبدالها بسلسلة أخرى.
سلسلة قديمة ‏‏نعم‬ سلسلة السلسلة التي ستزال من السلسلة الأصلية.
newString ‏‏نعم‬ سلسلة السلسلة التي تريد إضافتها بدلاً من السلسلة التي تمت إزالتها.

قيمة الإرجاع

سلسلة مرفقة مع الأحرف التي تم استبدالها.

الأمثلة

يوضح المثال التالي كيفية إزالة كافة الشرطات من سلسلة يوفرها المستخدم وكيفية استبدال جزء من السلسلة بشرطة أخرى:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "123-123-1234"
    }
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "string",
      "value": "[replace(parameters('testString'),'-', '')]"
    },
    "secondOutput": {
      "type": "string",
      "value": "[replace(parameters('testString'),'1234', 'xxxx')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
الإخراج الأول السلسلة‬ 1231231234
الإخراج الثاني السلسلة‬ 123-123-xxxx

skip

skip(originalValue, numberToSkip)

إرجاع سلسلة مع جميع العناصر بعد العدد المحدد من الحروف، أو صفيف مع جميع العناصر بعد العدد المحدد من العناصر.

في Bicep، استخدم الدالة skip .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
القيمة الأصلية ‏‏نعم‬ صفيف أو سلسلة الصفيف أو السلسلة المطلوب استخدامها للتخطي.
رقم التخطي ‏‏نعم‬ العدد الصحيح عدد العناصر أو الأحرف التي ينبغي تخطيها. إذا كانت هذه القيمة 0 أو أقل، يتم إرجاع جميع العناصر أو الأحرف في القيمة. إذا كان أكبر من طول الصفيف أو السلسلة، يتم إرجاع صفيف أو سلسلة فارغة.

قيمة الإرجاع

صفيف أو سلسلة.

الأمثلة

يتخطى المثال التالي العدد المحدد من العناصر في الصفيف والعدد المحدد من الأحرف في سلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToSkip": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToSkip": {
      "type": "int",
      "defaultValue": 4
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[skip(parameters('testArray'),parameters('elementsToSkip'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[skip(parameters('testString'),parameters('charactersToSkip'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
arrayOutput صفيف ["ثلاثة"]
إخراج السلسلة السلسلة‬ اثنان ثلاثة

split

split(inputString, delimiter)

تُرجع مصفوفة من السلاسل التي تحتوي على سلاسل فرعية لسلسلة الإدخال المحددة بواسطة المحددات المحددة.

في Bicep، استخدم الدالة split .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
سلسلة خاصة بالإدخال ‏‏نعم‬ سلسلة السلسلة المراد تقسيمها
المحدِّد ‏‏نعم‬ سلسلة أو صفيف خاص بالسلاسل محدِّد مراد استخدامه لتقسيم السلسلة.

قيمة الإرجاع

صفيف خاص بالسلاسل.

الأمثلة

يقسم المثال التالي سلسلة الإدخال مع فاصلة والسلسلة التالية باستخدام فاصلة أو فاصلة منقوطة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstString": {
      "type": "string",
      "defaultValue": "one,two,three"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "one;two,three"
    }
  },
  "variables": {
    "delimiters": [ ",", ";" ]
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "array",
      "value": "[split(parameters('firstString'),',')]"
    },
    "secondOutput": {
      "type": "array",
      "value": "[split(parameters('secondString'),variables('delimiters'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
الإخراج الأول صفيف ["واحد"، "اثنان"، "ثلاثة"]
الإخراج الثاني صفيف ["واحد"، "اثنان"، "ثلاثة"]

startsWith

startsWith(stringToSearch, stringToFind)

تحديد ما إذا كانت السلسلة تبدأ بقيمة. المقارنة غير حساسة لحالة الأحرف.

في Bicep، استخدم الدالة startsWith .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToSearch ‏‏نعم‬ سلسلة القيمة التي تحتوي على العنصر للبحث عنه.
stringToFind ‏‏نعم‬ سلسلة القيمة التي يتعين العثور عليها.

قيمة الإرجاع

True إذا تطابق الحرف الأول أو الأحرف الأولى من السلسلة مع القيمة؛ خلاف ذلك، False.

الأمثلة

يوضح المثال التالي كيفية استخدام كلتا الدالتين startsWith و endsWith:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "startsTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'ab')]"
    },
    "startsCapTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'A')]"
    },
    "startsFalse": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'e')]"
    },
    "endsTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'ef')]"
    },
    "endsCapTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'F')]"
    },
    "endsFalse": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'e')]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
بداية صحيحة مجموعة صواب
البدء بالتجميع مجموعة صواب
startsFalse مجموعة خطأ
نهايات صحيحة مجموعة صواب
endsCapTrue مجموعة صواب
endsFalse مجموعة خطأ

سلسلة

string(valueToConvert)

تحويل القيمة المحددة إلى سلسلة.

في Bicep، استخدم الدالة string .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
valueToConvert ‏‏نعم‬ أي القيمة المراد تحويلها إلى سلسلة. يمكن تحويل أي نوع من القيمة، بما في ذلك عناصر الصفائف.

قيمة الإرجاع

سلسلة مكونة من القيمة المحولة.

الأمثلة

يوضح المثال التالي كيفية تحويل أنواع مختلفة من القيم إلى سلاسل:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testObject": {
      "type": "object",
      "defaultValue": {
        "valueA": 10,
        "valueB": "Example Text"
      }
    },
    "testArray": {
      "type": "array",
      "defaultValue": [
        "a",
        "b",
        "c"
      ]
    },
    "testInt": {
      "type": "int",
      "defaultValue": 5
    }
  },
  "resources": [],
  "outputs": {
    "objectOutput": {
      "type": "string",
      "value": "[string(parameters('testObject'))]"
    },
    "arrayOutput": {
      "type": "string",
      "value": "[string(parameters('testArray'))]"
    },
    "intOutput": {
      "type": "string",
      "value": "[string(parameters('testInt'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
objectOutput السلسلة‬ {"القيمة": 10، "القيمة": "مثال على النص"}
arrayOutput السلسلة‬ ["أ"، ب"،ج"]
إخراج العدد الصحيح السلسلة‬ 5

السلسة الفرعية

substring(stringToParse, startIndex, length)

إرجاع سلسلة فرعية تبدأ من موضع الحرف المحدد وتحتوي على عدد محدد من الأحرف.

في Bicep، استخدم الدالة substring .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToParse ‏‏نعم‬ سلسلة السلسلة الأصلية التي يتم منها استخراج السلسلة الفرعية.
بداية الفهرس لا العدد الصحيح موضع حرف البداية المعتمدة على صفر للسلاسل الفرعية.
طول لا العدد الصحيح عدد أحرف السلاسل الفرعية. لا بد من الرجوع إلى موقع داخل السلسلة. يجب أن تكون القيمة صفرًا أو أكبر منه. إذا تم حذفها، فسيتم إرجاع باقي السلسلة من موضع البداية.

قيمة الإرجاع

السلسلة الفرعية. أو سلسلة فارغة إذا كانت القيمة تساوي صفرًا.

الملاحظات

فشل الدالة عندما تمتد السلسلة الفرعية إلى ما بعد نهاية السلسلة أو عندما تكون قيمة الطول أقل من صفر. فشل المثال التالي مع الخطأ ، "يجب أن تشير معلمات الفهرس والطول إلى موقع داخل السلسلة. معلمة الفهرس: '0'، معلمة الطول: '11'، طول معلمة السلسلة: '10'."

"parameters": {
  "inputString": {
    "type": "string",
    "value": "1234567890"
  }
}, "variables": {
  "prefix": "[substring(parameters('inputString'), 0, 11)]"
}

الأمثلة

يستخرج المثال التالي سلسلة فرعية من معلمة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    }
  },
  "resources": [],
  "outputs": {
    "substringOutput": {
      "type": "string",
      "value": "[substring(parameters('testString'), 4, 3)]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
إخراج سلسلة فرعية السلسلة‬ اثنان

الوقت المستغرق

take(originalValue, numberToTake)

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

في Bicep، استخدم الدالة take .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
القيمة الأصلية ‏‏نعم‬ صفيف أو سلسلة الصفيف أو السلسلة التي يتم أخذ العناصر منها.
الرقم الذي يتم الحصول عليه ‏‏نعم‬ العدد الصحيح عدد العناصر أو الأحرف التي يجب الحصول عليها. إذا كانت هذه القيمة 0 أو أقل، يتم إرجاع صفيف أو سلسلة فارغة. إذا كان أكبر من طول الصفيف أو السلسلة المحددة، فسيتم إرجاع جميع العناصر في المصفوفة أو السلسلة.

قيمة الإرجاع

صفيف أو سلسلة.

الأمثلة

يأخذ المثال التالي العدد المحدد من العناصر من الصفيف والأحرف من سلسلة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToTake": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToTake": {
      "type": "int",
      "defaultValue": 2
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[take(parameters('testArray'),parameters('elementsToTake'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[take(parameters('testString'),parameters('charactersToTake'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
arrayOutput صفيف ["واحد"، "اثنان"]
إخراج السلسلة السلسلة‬ تشغيل

للأسفل

toLower(stringToChange)

تحويل السلسلة المحددة إلى حالة أقل.

في Bicep، استخدم الدالة toLower .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToChange ‏‏نعم‬ سلسلة القيمة المراد تحويلها إلى حالة أقل.

قيمة الإرجاع

السلسلة التي تم تحويلها إلى حالة أقل.

الأمثلة

يحول المثال التالي قيمة معلمة إلى أحرف صغيرة وأحرف كبيرة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "One Two Three"
    }
  },
  "resources": [],
  "outputs": {
    "toLowerOutput": {
      "type": "string",
      "value": "[toLower(parameters('testString'))]"
    },
    "toUpperOutput": {
      "type": "string",
      "value": "[toUpper(parameters('testString'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
toLowerOutput السلسلة‬ واحد اثنان ثلاثة
toUpperOutput السلسلة‬ واحد اثنان ثلاثة

toUpper

toUpper(stringToChange)

تحويل السلسلة المحددة إلى حالة علوية.

في Bicep، استخدم الدالة toUpper .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToChange ‏‏نعم‬ سلسلة القيمة المراد تحويلها إلى الحالة العليا.

قيمة الإرجاع

السلسلة التي تم تحويلها إلى الحالة العليا.

الأمثلة

يحول المثال التالي قيمة معلمة إلى أحرف صغيرة وأحرف كبيرة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "One Two Three"
    }
  },
  "resources": [],
  "outputs": {
    "toLowerOutput": {
      "type": "string",
      "value": "[toLower(parameters('testString'))]"
    },
    "toUpperOutput": {
      "type": "string",
      "value": "[toUpper(parameters('testString'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
toLowerOutput السلسلة‬ واحد اثنان ثلاثة
toUpperOutput السلسلة‬ واحد اثنان ثلاثة

trim

trim(stringToTrim)

إزالة كل أحرف المسافات البيضاء البادئة واللاحقة من السلسلة المحددة.

في Bicep، استخدم الدالة trim .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToTrim ‏‏نعم‬ سلسلة القيمة المراد قطعها.

قيمة الإرجاع

السلسلة دون أحرف المسافات الفارغة البادئة والزائدة.

الأمثلة

المثال التالي يقلص أحرف المسافة البيضاء من المعلمة:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "    one two three   "
    }
  },
  "resources": [],
  "outputs": {
    "return": {
      "type": "string",
      "value": "[trim(parameters('testString'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
الرجوع السلسلة‬ واحد اثنان ثلاثة

uniqueString

uniqueString(baseString, ...)

إنشاء سلسلة تجزئة حتمية اعتمادًا على القيم المتوفرة كمعلمات.

في Bicep، استخدم الدالة uniqueString .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
baseString ‏‏نعم‬ سلسلة القيمة المستخدمة في دالة التجزئة لإعداد سلسلة فريدة.
مزيد من المعلمات حسب الحاجة لا سلسلة يمكنك إضافة العديد من السلاسل حسب الحاجة لإنشاء القيمة التي تحدد مستوى التفرد.

الملاحظات

هذه الوظيفة مفيدة عندما تحتاج إلى إنشاء اسم فريد لمورد. تقوم بتوفير قيم المعلمات التي تحد من نطاق التفرد للنتيجة. يمكنك تحديد ما إذا كان الاسم فريدا وصولا إلى الاشتراك أو مجموعة الموارد أو النشر.

القيمة التي تم إرجاعها ليست سلسلة عشوائية بل هي نتيجة دالة تجزئة. طول القيمة التي تم إرجاعها 13 حرفاً. إنها ليست فريدة من نوعها على مستوى العالم. قد تحتاج إلى دمج القيمة مع بادئة من اصطلاح التسمية لإنشاء اسم ذي معنى. يوضح المثال التالي تنسيق القيمة التي تم إرجاعها. تختلف القيمة الفعلية حسب المعلمات المقدمة.

tcvhiyu5h2o5o

توضح الأمثلة التالية كيفية استخدام uniqueString لإنشاء قيمة فريدة للمستويات شائعة الاستخدام:

نطاق فريد للاشتراك

"[uniqueString(subscription().subscriptionId)]"

فريد النطاق لمجموعة الموارد

"[uniqueString(resourceGroup().id)]"

فريد النطاق للنشر لمجموعة الموارد

"[uniqueString(resourceGroup().id, deployment().name)]"

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

"resources": [{
  "name": "[concat('storage', uniqueString(resourceGroup().id))]",
  "type": "Microsoft.Storage/storageAccounts",
  ...

إذا كنت بحاجة إلى إنشاء اسم فريد جديد في كل مرة تقوم فيها بنشر قالب، ولا تنوي تحديث المورد، يمكنك استخدام الدالة utcNow مع uniqueString. يمكنك استخدام هذا الأسلوب في بيئة اختبار. على سبيل المثال، راجع utcNow.

قيمة الإرجاع

سلسلة مكونة من 13 حرفاً.

الأمثلة

يعرض المثال التالي نتائج من uniquestring:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "uniqueRG": {
      "type": "string",
      "value": "[uniqueString(resourceGroup().id)]"
    },
    "uniqueDeploy": {
      "type": "string",
      "value": "[uniqueString(resourceGroup().id, deployment().name)]"
    }
  }
}

URI

uri(baseUri, relativeUri)

يقوم بإنشاء URI مطلقاً بدمج BaseUri وسلسلة Uri النسبية.

في Bicep، استخدم الدالة uri .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
baseUri ‏‏نعم‬ سلسلة سلسلة uri الأساسية. احرص على ملاحظة السلوك حول التعامل مع الشرطة المائلة اللاحقة (/)، كما هو موضح بعد هذا الجدول.
عنوان URI النسبية ‏‏نعم‬ سلسلة سلسلة uri النسبية المراد إضافتها إلى سلسلة uri الأساسية.
  • إذا كان baseUri ينتهي بشرطة مائلة لاحقة، فإن النتيجة ببساطة baseUri متبوعة ب relativeUri. إذا relativeUri بدأت أيضا مع شرطة مائلة بادئة، سيتم دمج الشرطة المائلة اللاحقة والشرطة المائلة البادئة في واحدة.

  • إذا baseUri لم ينتهي في شرطة مائلة زائدة يحدث أحد أمرين.

    • إذا baseUri لم يكن لديه شرطة مائلة على الإطلاق (بصرف النظر عن بالقرب من // الجبهة)، فإن النتيجة متبوعة baseUri ب relativeUri.

    • إذا كان baseUri لديه بعض الشرطة المائلة، ولكن لا ينتهي بشرطة مائلة، تتم إزالة كل شيء من الشرطة المائلة الأخيرة فصاعدا من baseUri والنتيجة متبوعة baseUri ب relativeUri.

إليك بعض الأمثلة:

uri('http://contoso.org/firstpath', 'myscript.sh') -> http://contoso.org/myscript.sh
uri('http://contoso.org/firstpath/', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/', '/myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json/', 'myscript.sh') -> http://contoso.org/firstpath/azuredeploy.json/myscript.sh

للحصول على تفاصيل كاملة، baseUri يتم حل المعلمات و relativeUri ، كما هو محدد في RFC 3986، القسم 5.

قيمة الإرجاع

سلسلة تمثل URI سلسلة تمثل URI المطلق للقيم الأساسية والقيم النسبية. للقيم الأساسية والنسبية.

الأمثلة

يوضح المثال التالي كيفية إنشاء ارتباط إلى قالب متداخل استنادا إلى قيمة القالب الأصل:

"templateLink": "[uri(deployment().properties.templateLink.uri, 'nested/azuredeploy.json')]"

يوضح قالب المثال التالي كيفية استخدام uriو uriComponentو uriComponentToString:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "uriFormat": "[uri('http://contoso.com/resources/', 'nested/azuredeploy.json')]",
    "uriEncoded": "[uriComponent(variables('uriFormat'))]"
  },
  "resources": [
  ],
  "outputs": {
    "uriOutput": {
      "type": "string",
      "value": "[variables('uriFormat')]"
    },
    "componentOutput": {
      "type": "string",
      "value": "[variables('uriEncoded')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[uriComponentToString(variables('uriEncoded'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
uriOutput السلسلة‬ http://contoso.com/resources/nested/azuredeploy.json
componentOutput السلسلة‬ http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput السلسلة‬ http://contoso.com/resources/nested/azuredeploy.json

uriComponent

uricomponent(stringToEncode)

ترميز URI.

في Bicep، استخدم الدالة uriComponent .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
stringToEncode ‏‏نعم‬ سلسلة القيمة المراد ترميزها.

قيمة الإرجاع

سلسلة من القيمة المشفرة URI.

الأمثلة

يوضح قالب المثال التالي كيفية استخدام uriو uriComponentو uriComponentToString:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "uriFormat": "[uri('http://contoso.com/resources/', 'nested/azuredeploy.json')]",
    "uriEncoded": "[uriComponent(variables('uriFormat'))]"
  },
  "resources": [
  ],
  "outputs": {
    "uriOutput": {
      "type": "string",
      "value": "[variables('uriFormat')]"
    },
    "componentOutput": {
      "type": "string",
      "value": "[variables('uriEncoded')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[uriComponentToString(variables('uriEncoded'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
uriOutput السلسلة‬ http://contoso.com/resources/nested/azuredeploy.json
componentOutput السلسلة‬ http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput السلسلة‬ http://contoso.com/resources/nested/azuredeploy.json

uriComponentToString

uriComponentToString(uriEncodedString)

إرجاع سلسلة من قيمة مشفرة URI.

في Bicep، استخدم الدالة uriComponentToString .

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
uriEncodedString ‏‏نعم‬ سلسلة قيمة URI المشفرة المراد تحويلها إلى سلسلة.

قيمة الإرجاع

سلسلة تم فك ترميزها لقيمة URI المشفرة.

الأمثلة

يوضح المثال التالي كيفية استخدام uriو uriComponentو:uriComponentToString

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "uriFormat": "[uri('http://contoso.com/resources/', 'nested/azuredeploy.json')]",
    "uriEncoded": "[uriComponent(variables('uriFormat'))]"
  },
  "resources": [
  ],
  "outputs": {
    "uriOutput": {
      "type": "string",
      "value": "[variables('uriFormat')]"
    },
    "componentOutput": {
      "type": "string",
      "value": "[variables('uriEncoded')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[uriComponentToString(variables('uriEncoded'))]"
    }
  }
}

إخراج القيم الافتراضية من المثال السابق هو:

Name نوع القيمة‬
uriOutput السلسلة‬ http://contoso.com/resources/nested/azuredeploy.json
componentOutput السلسلة‬ http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput السلسلة‬ http://contoso.com/resources/nested/azuredeploy.json

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