وظائف السلسلة لقوالب 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": {
    "stringData": {
      "type": "string",
      "defaultValue": "one, two, three"
    },
    "jsonFormattedData": {
      "type": "string",
      "defaultValue": "{'one': 'a', 'two': 'b'}"
    }
  },
  "variables": {
    "base64String": "[base64(parameters('stringData'))]",
    "base64Object": "[base64(parameters('jsonFormattedData'))]"
  },
  "resources": [
  ],
  "outputs": {
    "base64Output": {
      "type": "string",
      "value": "[variables('base64String')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[base64ToString(variables('base64String'))]"
    },
    "toJsonOutput": {
      "type": "object",
      "value": "[base64ToJson(variables('base64Object'))]"
    }
  }
}

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

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": {
    "stringData": {
      "type": "string",
      "defaultValue": "one, two, three"
    },
    "jsonFormattedData": {
      "type": "string",
      "defaultValue": "{'one': 'a', 'two': 'b'}"
    }
  },
  "variables": {
    "base64String": "[base64(parameters('stringData'))]",
    "base64Object": "[base64(parameters('jsonFormattedData'))]"
  },
  "resources": [
  ],
  "outputs": {
    "base64Output": {
      "type": "string",
      "value": "[variables('base64String')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[base64ToString(variables('base64String'))]"
    },
    "toJsonOutput": {
      "type": "object",
      "value": "[base64ToJson(variables('base64Object'))]"
    }
  }
}

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

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": {
    "stringData": {
      "type": "string",
      "defaultValue": "one, two, three"
    },
    "jsonFormattedData": {
      "type": "string",
      "defaultValue": "{'one': 'a', 'two': 'b'}"
    }
  },
  "variables": {
    "base64String": "[base64(parameters('stringData'))]",
    "base64Object": "[base64(parameters('jsonFormattedData'))]"
  },
  "resources": [
  ],
  "outputs": {
    "base64Output": {
      "type": "string",
      "value": "[variables('base64String')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[base64ToString(variables('base64String'))]"
    },
    "toJsonOutput": {
      "type": "object",
      "value": "[base64ToJson(variables('base64Object'))]"
    }
  }
}

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

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.

الأمثلة

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

{
  "$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 ‏‏نعم‬ صفيف أو سلسلة قيمة استرداد العنصر الأول أو الحرف الأول.

قيمة الإرجاع

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

الأمثلة

يوضح المثال التالي طريقة استخدام الدالة الأولى مع صفيف وسلسلة.

{
  "$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.

الأمثلة

يوضح المثال التالي كيفية استخدام وظيفة التنسيق.

{
  "$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(subscription().subscriptionId)]"

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

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

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

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

guid تنفذ الدالة الخوارزمية من RFC 4122 #4.3. يمكن العثور على المصدر الأصلي في GuidUtility مع بعض التعديلات.

قيمة الإرجاع

سلسلة تحتوي على 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، استخدم دالة json.

المعلمات

المعلمة‬ المطلوب نوع ‏‏الوصف
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.

الملاحظات

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

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

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

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

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

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

قيمة الإرجاع

سلسلة تحتوي على 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": "2021-04-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

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