Funciones numéricas para plantillas de ARM
Resource Manager ofrece las siguientes funciones para trabajar con enteros en la plantilla de Azure Resource Manager (plantilla de ARM):
Sugerencia
Se recomienda Bicep porque ofrece las mismas funcionalidades que las plantillas de ARM, y la sintaxis es más fácil de usar. Para obtener más información sobre el uso de int
, min
y max
en Bicep, consulte las funciones int
. Para otros valores numéricos, consulte los operadores numéricos.
add
add(operand1, operand2)
Devuelve la suma de los dos enteros especificados.
La función add
no es compatible con Bicep. En su lugar, utilice el operador +
.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
operand1 | Sí | int | Primer número que se agregará. |
operand2 | Sí | int | Segundo número que se agregará. |
Valor devuelto
Un entero que contiene la suma de los parámetros.
Ejemplo
El ejemplo siguiente agrega dos parámetros.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
addResult | Int | 8 |
copyIndex
copyIndex(loopName, offset)
Devuelve el índice actual de un bucle de iteración.
En Bicep, use bucles iterativos.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
loopName | No | string | El nombre del bucle para obtener la iteración. |
offset | No | int | El número que se agregará al valor de iteración basado en cero. |
Comentarios
Esta función siempre se usa con un objeto copy . Si no se proporciona ningún valor para offset, se devuelve el valor de la iteración actual. El valor del iteración comienza en cero.
La propiedad loopName le permite especificar si copyIndex hace referencia a una iteración de recursos o una iteración de propiedades. Si no se proporciona ningún valor para loopName, se usa la iteración de tipo de recurso actual. Proporcione un valor para loopName al iterar en una propiedad.
Para más información sobre el uso de la copia, consulte:
- Iteración de recursos en las plantillas de ARM
- Iteración de propiedades en las plantillas de ARM
- Iteración de variables en las plantillas de ARM
- Iteración de salida en las plantillas de ARM
Ejemplo
En el ejemplo siguiente se muestra un bucle de copia y el valor de índice incluido en el nombre.
{
"$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')]"
}
}
]
}
Valor devuelto
Un entero que representa el índice actual de la iteración.
div
div(operand1, operand2)
Devuelve la división de enteros de los dos enteros especificados.
La función div
no es compatible con Bicep. En su lugar, utilice el operador /
.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
operand1 | Sí | int | Número que se va a dividir. |
operand2 | Sí | int | Número que se usa para dividir. No puede ser 0. |
Valor devuelto
Un entero que representa la división.
Ejemplo
En el ejemplo siguiente se divide un parámetro por otro.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
divResult | Int | 2 |
FLOAT
float(arg1)
Convierte el valor en un número de punto flotante. Solo use esta función al pasar parámetros personalizados a una aplicación, como una aplicación lógica.
La función float
no es compatible con Bicep.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | cadena o entero | El valor para convertir en número de punto flotante. |
Valor devuelto
Un número de punto flotante.
Ejemplo
En el ejemplo siguiente se muestra cómo usar float para pasar parámetros a una aplicación lógica:
{
"type": "Microsoft.Logic/workflows",
"properties": {
...
"parameters": {
"custom1": {
"value": "[float('3.0')]"
},
"custom2": {
"value": "[float(3)]"
},
int
int(valueToConvert)
Convierte el valor especificado en un entero.
En Bicep, use la función int.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
valueToConvert | Sí | cadena o entero | Valor que se convierte en entero. |
Valor devuelto
Un entero del valor convertido.
Ejemplo
En la plantilla de ejemplo siguiente se convierte el valor del parámetro proporcionado por el usuario en entero.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
intResult | Int | 4 |
max
max(arg1)
Devuelve el valor máximo de una matriz de enteros o una lista separada por comas de enteros.
En Bicep, use la función max.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz de enteros, o lista separada por comas de enteros | La colección para obtener el valor máximo. |
Valor devuelto
Un entero que representa el valor máximo de la colección.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar "max" con una matriz y una lista de enteros.
{
"$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)]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | Int | 5 |
intOutput | Int | 5 |
Min
min(arg1)
Devuelve el valor mínimo de una matriz de enteros o una lista separada por comas de enteros.
En Bicep, use la función min.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz de enteros, o lista separada por comas de enteros | La colección para obtener el valor mínimo. |
Valor devuelto
Un entero que representa el valor mínimo de la colección.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar "min" con una matriz y una lista de enteros.
{
"$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)]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | Int | 0 |
intOutput | Int | 0 |
mod
mod(operand1, operand2)
Devuelve el resto de la división de enteros de los dos enteros especificados.
La función mod
no es compatible con Bicep. En su lugar, utilice el operador %.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
operand1 | Sí | int | Número que se va a dividir. |
operand2 | Sí | int | Número que se usa para dividir; no puede ser 0. |
Valor devuelto
Un entero que representa el resto.
Ejemplo
En el ejemplo siguiente se devuelve el resultado de dividir un parámetro por otro.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
modResult | Int | 1 |
mul
mul(operand1, operand2)
Devuelve la multiplicación de los dos enteros especificados.
La función mul
no es compatible con Bicep. En su lugar, utilice el operador *.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
operand1 | Sí | int | Primer número que se va a multiplicar. |
operand2 | Sí | int | Segundo número que se va a multiplicar. |
Valor devuelto
Un entero que representa la multiplicación.
Ejemplo
En el ejemplo siguiente se multiplica un parámetro por otro.
{
"$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)]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
mulResult | Int | 45 |
sub
sub(operand1, operand2)
Devuelve la resta de los dos enteros especificados.
La función sub
no es compatible con Bicep. En su lugar, utilice el - operador.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
operand1 | Sí | int | Número del que se resta. |
operand2 | Sí | int | Número que se resta. |
Valor devuelto
Un entero que representa la resta.
Ejemplo
En el ejemplo siguiente se resta un parámetro de otro.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
subResult | Int | 4 |
Pasos siguientes
- Puede encontrar una descripción de las secciones de una plantilla de Azure Resource Manager en Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.
- Para iterar un número especificado de veces al crear un tipo de recurso, consulte Iteración de recursos en las plantillas de ARM.