Funzioni numeriche per i modelli di Resource Manager

Resource Manager fornisce le funzioni seguenti per l'uso di interi nel modello di Azure Resource Manager (modello ARM):

Suggerimento

È consigliabile Usare Bicep perché offre le stesse funzionalità dei modelli di Resource Manager e la sintassi è più semplice da usare. Per altre informazioni sull'uso di int, mine max in Bicep, vedere Funzioni numeriche . Per altri valori numerici, vedere Operatori numerici .

add

add(operand1, operand2)

Restituisce la somma dei due numeri interi forniti.

La add funzione non è supportata in Bicep. Usare invece l'operatore+.

Parametri

Parametro Obbligatoria Tipo Descrizione
operand1 INT Il primo numero da aggiungere.
operand2 INT Il secondo numero da aggiungere.

Valore restituito

Un intero che contiene la somma dei parametri.

Esempio

L'esempio seguente aggiunge due parametri.

{
  "$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'))]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
addResult Int 8

copyIndex

copyIndex(loopName, offset)

Restituisce l'indice di un ciclo di iterazione.

In Bicep usare cicli iterativi.

Parametri

Parametro Obbligatoria Tipo Descrizione
loopName No string Nome del ciclo per ottenere l'iterazione.
offset No INT Il numero da aggiungere al valore di iterazione in base zero.

Commenti

Questa funzione viene sempre usata con un oggetto copy . Se non viene specificato alcun valore per offset, viene restituito il valore di iterazione corrente. Il valore di iterazione inizia da zero.

La proprietà loopName consente di specificare se copyIndex fa riferimento all'iterazione di una risorsa o all'iterazione di una proprietà. Se non viene specificato alcun valore per loopName, viene usata l'iterazione del tipo di risorsa corrente. Specificare un valore per loopName durante l'iterazione di una proprietà.

Per altre informazioni sull'uso della copia, vedere:

Esempio

L'esempio seguente illustra un ciclo di copy e il valore di indice incluso nel nome.

{
  "$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')]"
      }
    }
  ]
}

Valore restituito

Un intero che rappresenta l'indice corrente dell'iterazione.

div

div(operand1, operand2)

Restituisce la divisione Integer dei due numeri interi forniti.

La div funzione non è supportata in Bicep. Usare invece l'operatore/.

Parametri

Parametro Obbligatoria Tipo Descrizione
operand1 INT Il numero da dividere.
operand2 INT Il numero usato per dividere. Non può essere 0.

Valore restituito

Un intero che rappresenta la divisione.

Esempio

L'esempio seguente mostra come dividere un parametro per un altro parametro.

{
  "$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'))]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
divResult Int 2

float

float(arg1)

Converte il valore in un numero a virgola mobile. Usare questa funzione solo quando si passano parametri personalizzati a un'applicazione, ad esempio un'app per la logica.

La float funzione non è supportata in Bicep.

Parametri

Parametro Obbligatoria Tipo Descrizione
arg1 stringa o numero intero Il valore da convertire in un numero a virgola mobile.

Valore restituito

Un numero a virgola mobile.

Esempio

L'esempio seguente illustra come usare float per passare parametri a un'app per la logica:

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

INT

int(valueToConvert)

Converte il valore specificato in un numero intero.

In Bicep usare la funzione int .

Parametri

Parametro Obbligatoria Tipo Descrizione
valueToConvert stringa o numero intero Il valore da convertire in numero intero.

Valore restituito

Un intero del valore convertito.

Esempio

Il modello di esempio seguente converte il valore del parametro fornito dall'utente in intero.

{
  "$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'))]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
intResult Int 4

max

max(arg1)

Restituisce il valore massimo da una matrice di numeri interi o da un elenco di numeri interi delimitato da virgole.

In Bicep usare la funzione max .

Parametri

Parametro Obbligatoria Tipo Descrizione
arg1 matrice di numeri interi o elenco di numeri interi delimitato da virgole La raccolta per ottenere il valore massimo.

Valore restituito

Un intero che rappresenta il valore massimo dalla raccolta.

Esempio

Nell'esempio seguente viene illustrato come usare max con una matrice e un elenco di numeri interi.

{
  "$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)]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
arrayOutput Int 5
intOutput Int 5

min

min(arg1)

Restituisce il valore minimo di una matrice di numeri interi o di un elenco di numeri interi delimitato da virgole.

In Bicep usare la funzione min .

Parametri

Parametro Obbligatoria Tipo Descrizione
arg1 matrice di numeri interi o elenco di numeri interi delimitato da virgole La raccolta per ottenere il valore minimo.

Valore restituito

un intero che rappresenta il valore minimo dalla raccolta.

Esempio

Nell'esempio seguente viene illustrato come usare min con una matrice e un elenco di numeri interi.

{
  "$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)]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
arrayOutput Int 0
intOutput Int 0

mod

mod(operand1, operand2)

Restituisce la parte rimanente della divisione Integer usando i due numeri interi forniti.

La mod funzione non è supportata in Bicep. Usare invece l'operatore % .

Parametri

Parametro Obbligatoria Tipo Descrizione
operand1 INT Il numero da dividere.
operand2 INT Numero utilizzato per dividere, non può essere 0.

Valore restituito

Un intero che rappresenta il resto.

Esempio

L'esempio seguente restituisce il resto della divisione di un parametro per un altro parametro.

{
  "$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'))]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
modResult Int 1

mul

mul(operand1, operand2)

Restituisce la moltiplicazione dei due numeri interi forniti.

La mul funzione non è supportata in Bicep. Usare invece l'operatore * .

Parametri

Parametro Obbligatoria Tipo Descrizione
operand1 INT Il primo numero da moltiplicare.
operand2 INT Il secondo numero da moltiplicare.

Valore restituito

Un intero che rappresenta la moltiplicazione.

Esempio

L'esempio seguente mostra come moltiplicare un parametro per un altro parametro.

{
  "$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)]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
mulResult Int 45

sub

sub(operand1, operand2)

Restituisce la sottrazione dei due numeri interi forniti.

La sub funzione non è supportata in Bicep. Usare invece l'operatore -

Parametri

Parametro Obbligatoria Tipo Descrizione
operand1 INT Il numero da cui sottrarre.
operand2 INT Il numero sottratto.

Valore restituito

Un intero che rappresenta la sottrazione.

Esempio

L'esempio seguente mostra come sottrarre un parametro da un altro parametro.

{
  "$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'))]"
    }
  }
}

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type valore
subResult Int 4

Passaggi successivi