Числовые функции для шаблонов ARM

Диспетчер ресурсов предоставляет следующие функции для работы с целыми числами в шаблоне Azure Resource Manager (шаблоне ARM).

Совет

Мы рекомендуем использовать Bicep, так как он предоставляет те же возможности, что и шаблоны ARM, и имеет более простой синтаксис. Дополнительные сведения об использовании int, min и max в Bicep см. в описании числовых функций. Сведения о других числовых значениях см. в описании числовых операторов.

add

add(operand1, operand2)

Возвращает сумму двух указанных целочисленных значений.

Функция add не поддерживается в Bicep. Вместо нее используйте оператор .

Параметры

Параметр Обязательно Тип Описание
операнд1 Да INT Первое слагаемое.
операнд2 Да INT Второе слагаемое.

Возвращаемое значение

Целое число, содержащее сумму параметров.

Пример

В следующем примере суммируются два параметра.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "first": {
      "type": "int",
      "defaultValue": 5,
      "metadata": {
        "description": "First integer to add"
      }
    },
    "second": {
      "type": "int",
      "defaultValue": 3,
      "metadata": {
        "description": "Second integer to add"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "addResult": {
      "type": "int",
      "value": "[add(parameters('first'), parameters('second'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
addResult Int 8

copyIndex

copyIndex(loopName, offset)

Возвращает индекс цикла итерации.

В Bicep используйте итеративные циклы.

Параметры

Параметр Обязательно Тип Описание
loopName Нет строка Имя цикла для получения итерации.
offset Нет INT Число, добавляемое к отсчитываемому от нуля значению итерации.

Remarks

Эта функция всегда используется с объектом copy. Если значение offset не указано, возвращается текущее значение итерации. Значение итерации начинается с нуля.

Свойство loopName позволяет указать, на какую итерацию ссылается copyIndex: ресурса или свойства. Если значение loopName не указано, используется текущая итерация типа ресурса. Укажите значение loopName при выполнении итерации по свойству.

Дополнительные сведения об использовании объекта copy см. в следующих статьях.

Пример

В следующем примере представлен цикл копирования, в котором значение индекса включается в имя.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageCount": {
      "type": "int",
      "defaultValue": 2
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2022-09-01",
      "name": "[format('{0}storage{1}', range(0, parameters('storageCount'))[copyIndex()], uniqueString(resourceGroup().id))]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "Storage",
      "properties": {},
      "copy": {
        "name": "storagecopy",
        "count": "[parameters('storageCount')]"
      }
    }
  ]
}

Возвращаемое значение

Целое число, представляющее текущей индекс итерации.

div

div(operand1, operand2)

Возвращает целую часть частного от деления двух указанных целочисленных значений.

Функция div не поддерживается в Bicep. Вместо нее используйте оператор .

Параметры

Параметр Обязательно Тип Описание
операнд1 Да INT Делимое.
операнд2 Да INT Делитель. Не может быть равен 0.

Возвращаемое значение

Целое число, представляющее деление.

Пример

В следующем примере один параметр делится на другой.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "first": {
      "type": "int",
      "defaultValue": 8,
      "metadata": {
        "description": "Integer being divided"
      }
    },
    "second": {
      "type": "int",
      "defaultValue": 3,
      "metadata": {
        "description": "Integer used to divide"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "divResult": {
      "type": "int",
      "value": "[div(parameters('first'), parameters('second'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
divResult Int 2

FLOAT

float(arg1)

Преобразует значение в число с плавающей запятой. Эта функция используется только при передаче пользовательских параметров в приложение, такое как приложение логики.

Функция float не поддерживается в Bicep.

Параметры

Параметр Обязательно Тип Описание
arg1 Да строка или целое число Значение, которое необходимо преобразовать в число с плавающей запятой.

Возвращаемое значение

Число с плавающей запятой.

Пример

В следующем примере показано, как с помощью функции float передать параметры в приложение логики:

{
  "type": "Microsoft.Logic/workflows",
  "properties": {
    ...
    "parameters": {
      "custom1": {
        "value": "[float('3.0')]"
      },
      "custom2": {
        "value": "[float(3)]"
      },

INT

int(valueToConvert)

Преобразует указанное значение в целое число.

В Bicep используйте функцию int.

Параметры

Параметр Обязательно Тип Описание
valueToConvert Да строка или целое число Значение, которое необходимо преобразовать в целое число.

Возвращаемое значение

Целое число преобразованного значения.

Пример

В следующем примере шаблона указанное пользователем значение параметра преобразуется в целое число.

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

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
intResult Int 4

max

max(arg1)

Возвращает максимальное значение из массива целых чисел или разделенный запятыми список целых чисел.

В Bicep используйте функцию max.

Параметры

Параметр Обязательно Тип Описание
arg1 Да массив целых чисел или разделенный запятыми список целых чисел Коллекция, для которой необходимо получить максимальное значение.

Возвращаемое значение

Целое число, представляющее максимальное значение из коллекции.

Пример

В следующем примере показано, как использовать функцию max с массивом и списком целых чисел.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ 0, 3, 2, 5, 4 ]
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "int",
      "value": "[max(parameters('arrayToTest'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[max(0,3,2,5,4)]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
arrayOutput Int 5
intOutput Int 5

мин

min(arg1)

Возвращает минимальное значение из массива целых чисел или разделенный запятыми список целых чисел.

В Bicep используйте функцию min.

Параметры

Параметр Обязательно Тип Описание
arg1 Да массив целых чисел или разделенный запятыми список целых чисел Коллекция, для которой необходимо получить минимальное значение.

Возвращаемое значение

Целое число, представляющее минимальное значение из коллекции.

Пример

В следующем примере показано, как использовать функцию min с массивом и списком целых чисел.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ 0, 3, 2, 5, 4 ]
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "int",
      "value": "[min(parameters('arrayToTest'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[min(0,3,2,5,4)]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
arrayOutput Int 0
intOutput Int 0

mod

mod(operand1, operand2)

Возвращает остаток от деления двух указанных целочисленных значений.

Функция mod не поддерживается в Bicep. Вместо нее используйте оператор %.

Параметры

Параметр Обязательно Тип Описание
операнд1 Да INT Делимое.
операнд2 Да INT Делитель, не может быть равен 0.

Возвращаемое значение

Целое число, представляющее остаток.

Пример

В следующем примере возвращается остаток от деления одного параметра на другой.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "first": {
      "type": "int",
      "defaultValue": 7,
      "metadata": {
        "description": "Integer being divided"
      }
    },
    "second": {
      "type": "int",
      "defaultValue": 3,
      "metadata": {
        "description": "Integer used to divide"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "modResult": {
      "type": "int",
      "value": "[mod(parameters('first'), parameters('second'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
modResult Int 1

mul

mul(operand1, operand2)

Возвращает произведение двух указанных целочисленных значений.

Функция mul не поддерживается в Bicep. Вместо нее используйте оператор *.

Параметры

Параметр Обязательно Тип Описание
операнд1 Да INT Первый множитель.
операнд2 Да INT Второй множитель.

Возвращаемое значение

Целое число, представляющее произведение.

Пример

В следующем примере один параметр умножается на другой.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "first": {
      "type": "int",
      "defaultValue": 5,
      "metadata": {
        "description": "First integer to multiply"
      }
    },
    "second": {
      "type": "int",
      "defaultValue": 3,
      "metadata": {
        "description": "Second integer to multiply"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "mulResult": {
      "type": "int",
      "value": "[mul(mul(parameters('first'), parameters('second')), 3)]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
mulResult Int 45

sub

sub(operand1, operand2)

Возвращает разность двух указанных целочисленных значений.

Функция sub не поддерживается в Bicep. Вместо нее используйте оператор -.

Параметры

Параметр Обязательно Тип Описание
операнд1 Да INT Уменьшаемое.
операнд2 Да INT Вычитаемое.

Возвращаемое значение

Целое число, представляющее разность.

Пример

В следующем примере один параметр вычитается из другого.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "first": {
      "type": "int",
      "defaultValue": 7,
      "metadata": {
        "description": "Integer subtracted from"
      }
    },
    "second": {
      "type": "int",
      "defaultValue": 3,
      "metadata": {
        "description": "Integer to subtract"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "subResult": {
      "type": "int",
      "value": "[sub(parameters('first'), parameters('second'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя Тип Значение
subResult Int 4

Дальнейшие действия