Compartir a través de


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 int Primer número que se agregará.
operand2 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:

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 int Número que se va a dividir.
operand2 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 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 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 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 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 int Número que se va a dividir.
operand2 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 int Primer número que se va a multiplicar.
operand2 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 int Número del que se resta.
operand2 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