Condividi tramite


Funzioni matrice per i modelli di ARM

Questo articolo descrive le funzioni modello operare con le matrici.

Per ottenere una matrice di valori stringa delimitata da un valore, vedere split.

Suggerimento

È consigliabile usare Bicep perché offre le stesse funzionalità dei modelli arm e la sintassi è più facile da usare. Per altre informazioni, vedere array Funzioni.

array

array(convertToArray)

Converte il valore in matrice.

In Bicep usare la array funzione .

Parametri

Parametro Richiesto Type Descrizione
convertToArray int, stringa, matrice o oggetto Valore da convertire in matrice.

Valore restituito

Matrice .

Esempio

L'esempio seguente illustra come usare la array funzione con tipi diversi:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "intToConvert": {
      "type": "int",
      "defaultValue": 1
    },
    "stringToConvert": {
      "type": "string",
      "defaultValue": "efgh"
    },
    "objectToConvert": {
      "type": "object",
      "defaultValue": {
        "a": "b",
        "c": "d"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "intOutput": {
      "type": "array",
      "value": "[array(parameters('intToConvert'))]"
    },
    "stringOutput": {
      "type": "array",
      "value": "[array(parameters('stringToConvert'))]"
    },
    "objectOutput": {
      "type": "array",
      "value": "[array(parameters('objectToConvert'))]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
intOutput Matrice [1]
stringOutput Matrice ["efgh"]
objectOutput Matrice [{"a": "b", "c": "d"}]

concat

concat(arg1, arg2, arg3, ...)

Combina più matrici e restituisce la matrice concatenata oppure combina più valori di stringa e restituisce la stringa concatenata.

In Bicep usare la concat funzione .

Parametri

Parametro Richiesto Type Descrizione
arg1 stringa o matrice La prima matrice o stringa per la concatenazione.
altri argomenti NO stringa o matrice Matrici o stringhe aggiuntive in ordine sequenziale per la concatenazione.

Questa funzione può accettare un numero qualsiasi di argomenti e può accettare stringhe o matrici per i parametri. Tuttavia, non è possibile fornire matrici e stringhe per i parametri. Le matrici sono concatenate solo con altre matrici.

Valore restituito

Stringa o matrice di valori concatenati.

Esempio

L'esempio seguente illustra come combinare due matrici:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
ritorno Matrice ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

Nell'esempio seguente viene illustrato come combinare due valori stringa e restituire una stringa concatenata:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
concatOutput Stringa prefix-5yj4yjf5mbg72

contiene

contains(container, itemToFind)

Controlla se una matrice contiene un valore, un oggetto contiene una chiave o una stringa contiene una sottostringa. Il confronto fra stringhe fa distinzione tra maiuscole e minuscole. Tuttavia, quando si testa se un oggetto contiene una chiave, il confronto non fa distinzione tra maiuscole e minuscole.

In Bicep usare la contains funzione .

Parametri

Parametro Richiesto Type Descrizione
container matrice, oggetto o stringa Valore che contiene il valore da trovare.
itemToFind stringa o numero intero Valore da trovare.

Valore restituito

True se l'elemento viene individuato; in caso contrario, restituisce False.

Esempio

L'esempio seguente illustra come usare contains con tipi diversi:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
stringTrue Bool Vero
stringFalse Bool Falso
objectTrue Bool Vero
objectFalse Bool Falso
arrayTrue Bool Vero
arrayFalse Bool Falso

createArray

createArray(arg1, arg2, arg3, ...)

Crea una matrice dai parametri.

La funzione createArray non è supportata in Bicep. Per costruire una matrice, vedere il tipo di dati della matriceBicep.

Parametri

Parametro Richiesto Type Descrizione
argomenti NO Stringa, numero intero, matrice o oggetto I valori nella matrice.

Valore restituito

Matrice . Quando non vengono forniti parametri, restituisce una matrice vuota.

Esempio

L'esempio seguente illustra come usare createArray con tipi diversi:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringArray": {
      "type": "array",
      "value": "[createArray('a', 'b', 'c')]"
    },
    "intArray": {
      "type": "array",
      "value": "[createArray(1, 2, 3)]"
    },
    "objectArray": {
      "type": "array",
      "value": "[createArray(parameters('objectToTest'))]"
    },
    "arrayArray": {
      "type": "array",
      "value": "[createArray(parameters('arrayToTest'))]"
    },
    "emptyArray": {
      "type": "array",
      "value": "[createArray()]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
stringArray Matrice ["a", "b", "c"]
intArray Matrice [1, 2, 3]
objectArray Matrice [{"one": "a", "two": "b", "three": "c"}]
arrayArray Matrice [["one", "two", "three"]]
emptyArray Matrice []

vuoto

empty(itemToTest)

Determina se una matrice, un oggetto o una stringa sono vuoti.

In Bicep usare la empty funzione .

Parametri

Parametro Richiesto Type Descrizione
itemToTest matrice, oggetto o stringa Il valore per controllare se è vuota.

Valore restituito

True se il valore è vuoto; in caso contrario, restituisce False.

Esempio

Nell'esempio seguente viene verificato se una matrice, un oggetto e una stringa sono vuote:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayEmpty Bool Vero
objectEmpty Bool Vero
stringEmpty Bool Vero

primo

first(arg1)

Restituisce il primo elemento della matrice o il primo carattere della stringa.

In Bicep usare la first funzione .

Parametri

Parametro Richiesto Type Descrizione
arg1 stringa o matrice Valore per recuperare il primo elemento o carattere.

Valore restituito

Il tipo (string, int, array o object) del primo elemento di una matrice o il primo carattere di una stringa.

Esempio

L'esempio seguente illustra come usare la first funzione con una matrice e una stringa:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayOutput Stringa Uno
stringOutput Stringa o

indexFromEnd

indexFromEnd(sourceArray, reverseIndex)

Restituisce un elemento della matrice contando all'indietro dalla fine. Ciò è utile quando si desidera fare riferimento agli elementi a partire dalla fine di un elenco anziché dall'inizio. La tryIndexFromEnd funzione è una versione sicura di indexFromEnd.

In Bicep usare l'operatore di accesso Reserved index .

Parametri

Parametro Richiesto Type Descrizione
sourceArray array Valore per recuperare l'elemento contando all'indietro dalla fine.
reverseIndex numero intero Indice in base uno dalla fine della matrice.

Valore restituito

Un singolo elemento di una matrice, selezionato contando all'indietro dalla fine della matrice.

Esempio

L'esempio seguente illustra come usare la funzione indexFromEnd:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "items": [
      "apple",
      "banana",
      "orange",
      "grape"
    ]
  },
  "resources": [],
  "outputs": {
    "secondToLast": {
      "type": "string",
      "value": "[indexFromEnd(variables('items'), 2)]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
secondToLast Stringa arancione

indexOf

indexOf(arrayToSearch, itemToFind)

Restituisce un numero intero per l'indice della prima occorrenza di un elemento in una matrice. Il confronto è case sensitive (sensibile alle maiuscole) per le stringhe.

Parametri

Parametro Richiesto Type Descrizione
arrayToSearch array La matrice da usare per trovare l'indice dell'elemento cercato.
itemToFind int, stringa, matrice o oggetto L’elemento da trovare nella matrice.

Valore restituito

Un intero che rappresenta il primo indice dell'elemento nella matrice. L’indice è in base zero. Se l'elemento non viene trovato, viene restituito -1.

Esempi

Nell'esempio seguente viene illustrato come utilizzare le funzioni indexOf e lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "names": [
      "one",
      "two",
      "three"
    ],
    "numbers": [
      4,
      5,
      6
    ],
    "collection": [
      "[variables('names')]",
      "[variables('numbers')]"
    ],
    "duplicates": [
      1,
      2,
      3,
      1
    ]
  },
  "resources": [],
  "outputs": {
    "index1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'two')]"
    },
    "index2": {
      "type": "int",
      "value": "[indexOf(variables('names'), 'one')]"
    },
    "notFoundIndex1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'Three')]"
    },
    "index3": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), 4)]"
    },
    "index4": {
      "type": "int",
      "value": "[indexOf(variables('numbers'), 6)]"
    },
    "notFoundIndex2": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), '5')]"
    },
    "index5": {
      "type": "int",
      "value": "[indexOf(variables('collection'), variables('numbers'))]"
    },
    "index6": {
      "type": "int",
      "value": "[indexOf(variables('duplicates'), 1)]"
    },
    "index7": {
      "type": "int",
      "value": "[lastIndexOf(variables('duplicates'), 1)]"
    }
  }
}

L'output dell'esempio precedente è:

Nome Type Valore
index1 Int 1
index2 Int 0
index3 Int 0
index4 Int 2
index5 Int 1
index6 Int 0
index7 Int 3
notFoundIndex1 Int -1
notFoundIndex2 Int -1

intersezione

intersection(arg1, arg2, arg3, ...)

Restituisce una matrice o un oggetto singoli con gli elementi comuni dei parametri.

In Bicep usare la intersection funzione .

Parametri

Parametro Richiesto Type Descrizione
arg1 matrice o oggetto Primo valore da usare per cercare elementi comuni.
arg2 matrice o oggetto Secondo valore da usare per cercare elementi comuni.
altri argomenti NO matrice o oggetto Valori aggiuntivi da usare per cercare elementi comuni.

Valore restituito

Una matrice o un oggetto con elementi comuni.

Esempio

L'esempio seguente illustra come usare intersection con matrici e oggetti:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "z",
        "three": "c"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[intersection(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[intersection(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
objectOutput Oggetto {"one": "a", "three": "c"}
arrayOutput Matrice ["two", "three"]

ultimo

last(arg1)

Restituisce l'ultimo elemento della matrice o l'ultimo carattere della stringa.

In Bicep usare la last funzione .

Parametri

Parametro Richiesto Type Descrizione
arg1 stringa o matrice Valore per recuperare l'ultimo elemento o carattere.

Valore restituito

Il tipo (string, int, array o object) dell'ultimo elemento di una matrice o l'ultimo carattere di una stringa.

Esempio

L'esempio seguente illustra come usare la last funzione con una matrice e una stringa:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayOutput Stringa tre
stringOutput Stringa e

lastIndexOf

lastIndexOf(arrayToSearch, itemToFind)

Restituisce un intero per l'indice dell'ultima occorrenza di un elemento in una matrice. Il confronto è case sensitive (sensibile alle maiuscole) per le stringhe.

Parametri

Parametro Richiesto Type Descrizione
arrayToSearch array La matrice da usare per trovare l'indice dell'elemento cercato.
itemToFind int, stringa, matrice o oggetto L’elemento da trovare nella matrice.

Valore restituito

Un intero che rappresenta l'ultimo indice dell'elemento nella matrice. L’indice è in base zero. Se l'elemento non viene trovato, viene restituito -1.

Esempi

Nell'esempio seguente viene illustrato come utilizzare le funzioni indexOf e lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "names": [
      "one",
      "two",
      "three"
    ],
    "numbers": [
      4,
      5,
      6
    ],
    "collection": [
      "[variables('names')]",
      "[variables('numbers')]"
    ],
    "duplicates": [
      1,
      2,
      3,
      1
    ]
  },
  "resources": [],
  "outputs": {
    "index1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'two')]"
    },
    "index2": {
      "type": "int",
      "value": "[indexOf(variables('names'), 'one')]"
    },
    "notFoundIndex1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'Three')]"
    },
    "index3": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), 4)]"
    },
    "index4": {
      "type": "int",
      "value": "[indexOf(variables('numbers'), 6)]"
    },
    "notFoundIndex2": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), '5')]"
    },
    "index5": {
      "type": "int",
      "value": "[indexOf(variables('collection'), variables('numbers'))]"
    },
    "index6": {
      "type": "int",
      "value": "[indexOf(variables('duplicates'), 1)]"
    },
    "index7": {
      "type": "int",
      "value": "[lastIndexOf(variables('duplicates'), 1)]"
    }
  }
}

L'output dell'esempio precedente è:

Nome Type Valore
index1 Int 1
index2 Int 0
index3 Int 0
index4 Int 2
index5 Int 1
index6 Int 0
index7 Int 3
notFoundIndex1 Int -1
notFoundIndex2 Int -1

lunghezza

length(arg1)

Restituisce il numero di elementi in una matrice, caratteri in una stringa o proprietà a livello radice in un oggetto .

In Bicep usare la length funzione .

Parametri

Parametro Richiesto Type Descrizione
arg1 matrice, stringa o oggetto La matrice da utilizzare per ottenere il numero di elementi, la stringa da utilizzare per ottenere il numero di caratteri o l'oggetto da utilizzare per ottenere il numero di proprietà a livello radice.

Valore restituito

Numero intero

Esempio

L'esempio seguente illustra come usare length con una matrice e una stringa:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
lunghezzaArray int 3
stringLength int 13
objectLength int 4

È possibile usare questa funzione con una matrice per specificare il numero di iterazioni durante la creazione di risorse. Nell'esempio seguente il parametro siteNames fa riferimento a una matrice di nomi da usare durante la creazione di siti Web:

"copy": {
  "name": "websitescopy",
  "count": "[length(parameters('siteNames'))]"
}

Per altre informazioni sull'uso di questa funzione con una matrice, vedere Iterazione delle risorse nei modelli di ARM.

massimo

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 max funzione .

Parametri

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

Valore restituito

Numero intero che rappresenta il valore massimo.

Esempio

L'esempio seguente illustra 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 dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayOutput int 5
intOutput int 5

minuto

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 min funzione .

Parametri

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

Valore restituito

Numero intero che rappresenta il valore minimo.

Esempio

L'esempio seguente illustra 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 dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayOutput int 0
intOutput int 0

range

range(startIndex, count)

Crea una matrice di numeri interi da un numero intero iniziale, contenente un dato numero di elementi.

In Bicep usare la range funzione .

Parametri

Parametro Richiesto Type Descrizione
startIndex Int Primo numero intero nella matrice. La somma di startIndex e count non deve essere maggiore di 2147483647.
numero Int Numero di valori interi della matrice. Deve essere un numero intero non negativo fino a 10000.

Valore restituito

Matrice di numeri interi.

Esempio

L'esempio seguente illustra come usare la funzione range:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "startingInt": {
      "type": "int",
      "defaultValue": 5
    },
    "numberOfElements": {
      "type": "int",
      "defaultValue": 3
    }
  },
  "resources": [],
  "outputs": {
    "rangeOutput": {
      "type": "array",
      "value": "[range(parameters('startingInt'),parameters('numberOfElements'))]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
rangeOutput Matrice [5, 6, 7]

skip

skip(originalValue, numberToSkip)

Restituisce una matrice con tutti gli elementi dopo il numero specificato nella matrice stessa o una stringa con tutti i caratteri dopo il numero specificato nella stringa stessa.

In Bicep usare la skip funzione .

Parametri

Parametro Richiesto Type Descrizione
originalValue stringa o matrice Stringa o matrice da usare per i valori da ignorare.
numberToSkip Int Numero di elementi o caratteri da ignorare. Se il valore è minore o uguale a 0, vengono restituiti tutti gli elementi o i caratteri nel valore. Se il valore è maggiore della lunghezza della stringa o della matrice, viene restituita una stringa o una matrice vuota.

Valore restituito

Stringa o matrice.

Esempio

Nell'esempio seguente viene ignorato il numero specificato di elementi nella matrice e il numero specificato di caratteri in una stringa:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayOutput Matrice ["three"]
stringOutput Stringa due tre

prendere

take(originalValue, numberToTake)

Restituisce una matrice o una stringa. Una matrice con il numero specificato di elementi dall'inizio della matrice. Una stringa con il numero specificato di caratteri dall'inizio della stringa.

In Bicep usare la take funzione .

Parametri

Parametro Richiesto Type Descrizione
originalValue stringa o matrice Stringa o matrice da cui prendere gli elementi.
numberToTake Int Numero di elementi o caratteri da prendere. Se il valore è minore o uguale a 0, viene restituita una stringa o un matrice vuota. Se è maggiore della lunghezza della stringa o della matrice specificate, vengono restituiti tutti gli elementi nella stringa o nella matrice.

Valore restituito

Stringa o matrice.

Esempio

L'esempio seguente accetta il numero specificato di elementi da una matrice e caratteri da una stringa:

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

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
arrayOutput Matrice ["one", "two"]
stringOutput Stringa su

tryGet

tryGet(itemToTest, keyOrIndex)

tryGet consente di evitare errori di distribuzione quando si tenta di accedere a una proprietà o a un indice inesistente in un oggetto o in una matrice. Se la chiave o l'indice specificato non esiste, tryGet restituisce Null anziché generare un errore.

In Bicep usare l'operatore safe-dereference .

Parametri

Parametro Richiesto Type Descrizione
itemToTest matrice, oggetto Oggetto o matrice da esaminare.
keyOrIndex stringa, int Chiave o indice da recuperare dalla matrice o dall'oggetto . Nome di proprietà per oggetti o indici per le matrici.

Valore restituito

Restituisce il valore in corrispondenza della chiave/indice, se presente. Restituisce Null se la chiave/indice è mancante o fuori dai limiti.

Esempio

Nell'esempio seguente viene verificato se una matrice, un oggetto e una stringa sono vuote:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "variables": {
    "users": {
      "name": "John Doe",
      "age": 30
    },
    "colors": [
      "red",
      "green"
    ]
  },
  "resources": [],
  "outputs": {
    "region": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('users'), 'region')]"
    },
    "name": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('users'), 'name')]"
    },
    "firstColor": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('colors'), 0)]"
    }
  }
}

L'output dell'esempio precedente è:

Nome Type Valore
area geografica Stringa (NULL)
nome Stringa John Doe
firstColor Stringa Rosso

tryIndexFromEnd

tryndexFromEnd(sourceArray, reverseIndex)

La tryIndexFromEnd funzione è una versione sicura di indexFromEnd. Recupera un valore da una matrice contando all'indietro dalla fine senza generare un errore se l'indice non è compreso nell'intervallo.

In Bicep usare l'operatore di accesso Reserved index e l'operatore Safe dereference .

Parametri

Parametro Richiesto Type Descrizione
sourceArray array Valore per recuperare l'elemento contando all'indietro dalla fine.
reverseIndex numero intero Indice in base uno dalla fine della matrice.

Valore restituito

Se l'indice è valido (all'interno dei limiti di matrice), restituisce l'elemento matrice in corrispondenza dell'indice inverso. Se l'indice non è compreso nell'intervallo, restituisce null anziché generare un errore.

Esempio

L'esempio seguente illustra come usare la funzione tryIndexFromEnd:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "items": [
      "apple",
      "banana",
      "orange",
      "grape"
    ]
  },
  "resources": [],
  "outputs": {
    "secondToLast": {
      "type": "string",
      "value": "[tryIndexFromEnd(variables('items'), 2)]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
secondToLast Stringa arancione

L'esempio seguente illustra uno scenario non associato:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "items": {
      "type": "array",
      "defaultValue": [
        "apple",
        "banana",
        "orange",
        "grape"
      ]
    }
  },
  "resources": {},
  "outputs": {
    "outOfBound": {
      "type": "string",
      "nullable": true,
      "value": "[tryIndexFromEnd(parameters('items'), 5)]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
outOfBound Stringa (null)

union

union(arg1, arg2, arg3, ...)

Restituisce una matrice o un oggetto singoli con tutti gli elementi dei parametri. Per le matrici, i valori duplicati vengono inclusi una sola volta. Per gli oggetti, i nomi delle proprietà duplicati vengono inclusi una sola volta.

In Bicep usare la union funzione .

Parametri

Parametro Richiesto Type Descrizione
arg1 matrice o oggetto Primo valore da usare per l'aggiunta di elementi.
arg2 matrice o oggetto Secondo valore da usare per l'aggiunta di elementi.
altri argomenti NO matrice o oggetto Valori aggiuntivi da usare per unire gli elementi.

Valore restituito

Una matrice o un oggetto.

Osservazioni:

union function usa la sequenza dei parametri per determinare l'ordine e i valori del risultato.

Per le matrici, la funzione itera attraverso ogni elemento nel primo parametro e lo aggiunge al risultato, se non è già presente. Ripete quindi il processo per il secondo parametro e per gli altri parametri. Se un valore è già presente, la sua posizione precedente nella matrice viene mantenuta.

Per gli oggetti, i nomi delle proprietà e i valori del primo parametro vengono aggiunti al risultato. Per i parametri successivi, tutti i nuovi nomi vengono aggiunti al risultato. Se un parametro successivo ha una proprietà con stesso nome, tale valore sovrascrive il valore esistente. L'ordine delle proprietà non è garantito.

La union funzione non solo unisce gli elementi di primo livello, ma unisce in modo ricorsivo anche tutti gli oggetti annidati all'interno di essi. I valori di matrice annidati non vengono uniti. Vedere il secondo esempio nella sezione seguente.

Esempio

L'esempio seguente illustra come usare union con matrici e oggetti:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c1"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "three": "c2",
        "four": "d",
        "five": "e"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "three", "four" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[union(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[union(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

L'output dei valori predefiniti dell'esempio precedente è:

Nome Type Valore
objectOutput Oggetto {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Matrice ["one", "two", "three", "four"]

L'esempio seguente mostra la funzionalità deep merge:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "firstObject": {
      "property": {
        "one": "a",
        "two": "b",
        "three": "c1"
      },
      "nestedArray": [
        1,
        2
      ]
    },
    "secondObject": {
      "property": {
        "three": "c2",
        "four": "d",
        "five": "e"
      },
      "nestedArray": [
        3,
        4
      ]
    },
    "firstArray": [
      [
        "one",
        "two"
      ],
      [
        "three"
      ]
    ],
    "secondArray": [
      [
        "three"
      ],
      [
        "four",
        "two"
      ]
    ]
  },
  "resources": [],
  "outputs": {
    "objectOutput": {
      "type": "Object",
      "value": "[union(variables('firstObject'), variables('secondObject'))]"
    },
    "arrayOutput": {
      "type": "Array",
      "value": "[union(variables('firstArray'), variables('secondArray'))]"
    }
  }
}

L'output dell'esempio precedente è:

Nome Type Valore
objectOutput Oggetto {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Matrice [["one","two"],["three"],["four","two"]]

Se sono state unite matrici annidate, il valore di objectOutput.nestedArray è [1, 2, 3, 4], e il valore di arrayOutput è [["uno", "two", "three"], ["three", "four", "two"]].

Passaggi successivi