Dela via


Matrisfunktioner för ARM-mallar

Den här artikeln beskriver mallfunktionerna för att arbeta med matriser.

Information om hur du hämtar en matris med strängvärden avgränsade med ett värde finns i dela.

Dricks

Bicep rekommenderas eftersom det erbjuder samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i array funktioner.

matris

array(convertToArray)

Konverterar värdet till en matris.

Använd funktionen i array Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
convertToArray Ja int, string, array eller object Värdet som ska konverteras till en matris.

Returvärde

En matris.

Exempel

I följande exempel visas hur du array använder funktionen med olika typer:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
intOutput Matris [1]
stringOutput Matris ["efgh"]
objectOutput Matris [{"a": "b", "c": "d"}]

concat

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

Kombinerar flera matriser och returnerar den sammanfogade matrisen, eller kombinerar flera strängvärden och returnerar den sammanfogade strängen.

Använd funktionen i concat Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller sträng Den första matrisen eller strängen för sammanfogning.
fler argument Nej matris eller sträng Fler matriser eller strängar i sekventiell ordning för sammanfogning.

Den här funktionen kan ta valfritt antal argument och kan acceptera antingen strängar eller matriser för parametrarna. Du kan dock inte ange både matriser och strängar för parametrar. Matriser sammanfogas bara med andra matriser.

Returvärde

En sträng eller matris med sammanfogade värden.

Exempel

I följande exempel visas hur du kombinerar två matriser:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
retur Matris ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

I följande exempel visas hur du kombinerar två strängvärden och returnerar en sammanfogad sträng:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
concatOutput Sträng prefix-5yj4yjf5mbg72

innehåller

contains(container, itemToFind)

Kontrollerar om en matris innehåller ett värde, ett objekt innehåller en nyckel eller om en sträng innehåller en delsträng. Strängjämförelsen är skiftlägeskänslig. Men när du testar om ett objekt innehåller en nyckel är jämförelsen skiftlägeskänslig.

Använd funktionen i contains Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
container Ja matris, objekt eller sträng Värdet som innehåller det värde som ska hittas.
itemToFind Ja sträng eller int Värdet som ska hittas.

Returvärde

Sant om objektet hittas, annars Falskt.

Exempel

I följande exempel visas hur du använder contains med olika typer:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
stringTrue Bool Sant
stringFalse Bool Falsk
objectTrue Bool Sant
objectFalse Bool Falsk
arrayTrue Bool Sant
arrayFalse Bool Falsk

createArray

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

Skapar en matris från parametrarna.

I Bicep createArray stöds inte funktionen. Information om hur du skapar en matris finns i datatypen Bicep-matris.

Parametrar

Parameter Obligatoriskt Type Beskrivning
args args Nej Sträng, heltal, matris eller objekt Värdena i matrisen.

Returvärde

En matris. När inga parametrar anges returneras en tom matris.

Exempel

I följande exempel visas hur du använder createArray med olika typer:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
stringArray Matris ["a", "b", "c"]
intArray Matris [1, 2, 3]
objectArray Matris [{"one": "a", "two": "b", "three": "c"}]
arrayArray Matris [["one", "two", "three"]]
emptyArray Matris []

tom

empty(itemToTest)

Avgör om en matris, ett objekt eller en sträng är tom.

Använd funktionen i empty Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
itemToTest Ja matris, objekt eller sträng Värdet för att kontrollera om det är tomt.

Returvärde

Returnerar Sant om värdet är tomt, annars Falskt.

Exempel

I följande exempel kontrolleras om en matris, ett objekt och en sträng är tomma:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayEmpty Bool Sant
objectEmpty Bool Sant
stringEmpty Bool Sant

Första

first(arg1)

Returnerar det första elementet i matrisen eller det första tecknet i strängen.

Använd funktionen i first Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller sträng Värdet för att hämta det första elementet eller tecknet.

Returvärde

Typen (sträng, int, matris eller objekt) för det första elementet i en matris eller det första tecknet i en sträng.

Exempel

I följande exempel visas hur du first använder funktionen med en matris och en sträng:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayOutput Sträng en
stringOutput Sträng O

indexFromEnd

indexFromEnd(sourceArray, reverseIndex)

Returnerar ett element i matrisen genom att räkna bakåt från slutet. Detta är användbart när du vill referera till element som börjar från slutet av en lista i stället för början. Funktionen tryIndexFromEnd är en säker version av indexFromEnd.

I Bicep använder du operatorn för reserverad indexåtkomst.

Parametrar

Parameter Obligatoriskt Type Beskrivning
sourceArray Ja matris Värdet för att hämta elementet genom att räkna bakåt från slutet.
reverseIndex Ja integer Det enbaserade indexet från slutet av matrisen.

Returvärde

Ett enda element från en matris som väljs genom att räkna bakåt från slutet av matrisen.

Exempel

I följande exempel visas hur du indexFromEnd använder funktionen:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
secondToLast Sträng apelsin

indexOf

indexOf(arrayToSearch, itemToFind)

Returnerar ett heltal för indexet för den första förekomsten av ett objekt i en matris. Jämförelsen är skiftlägeskänslig för strängar.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arrayToSearch Ja matris Matrisen som ska användas för att hitta indexet för det sökta objektet.
itemToFind Ja int, string, array eller object Objektet som ska hittas i matrisen.

Returvärde

Ett heltal som representerar det första indexet för objektet i matrisen. Indexet är nollbaserat. Om objektet inte hittas returneras -1.

Exempel

I följande exempel visas hur du använder indexOf funktionerna och 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)]"
    }
  }
}

Utdata från föregående exempel är:

Namn Type Värde
index1 heltal 1
index2 heltal 0
index3 heltal 0
index4 heltal 2
index5 heltal 1
index6 heltal 0
index7 heltal 3
notFoundIndex1 heltal -1
notFoundIndex2 heltal -1

vägkorsning

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

Returnerar en enskild matris eller ett objekt med de gemensamma elementen från parametrarna.

Använd funktionen i intersection Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller objekt Det första värdet som ska användas för att hitta vanliga element.
arg2 Ja matris eller objekt Det andra värdet som ska användas för att hitta vanliga element.
fler argument Nej matris eller objekt Fler värden att använda för att hitta vanliga element.

Returvärde

En matris eller ett objekt med de gemensamma elementen.

Exempel

I följande exempel visas hur du använder intersection med matriser och objekt:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
objectOutput Objekt {"one": "a", "three": "c"}
arrayOutput Matris ["två", "tre"]

senaste

last(arg1)

Returnerar det sista elementet i matrisen eller det sista tecknet i strängen.

Använd funktionen i last Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller sträng Värdet för att hämta det sista elementet eller tecknet.

Returvärde

Typen (sträng, int, matris eller objekt) för det sista elementet i en matris eller det sista tecknet i en sträng.

Exempel

I följande exempel visas hur du last använder funktionen med en matris och en sträng:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayOutput Sträng tre
stringOutput Sträng e

lastIndexOf

lastIndexOf(arrayToSearch, itemToFind)

Returnerar ett heltal för indexet för den senaste förekomsten av ett objekt i en matris. Jämförelsen är skiftlägeskänslig för strängar.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arrayToSearch Ja matris Matrisen som ska användas för att hitta indexet för det sökta objektet.
itemToFind Ja int, string, array eller object Objektet som ska hittas i matrisen.

Returvärde

Ett heltal som representerar det sista indexet för objektet i matrisen. Indexet är nollbaserat. Om objektet inte hittas returneras -1.

Exempel

I följande exempel visas hur du använder indexOf funktionerna och 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)]"
    }
  }
}

Utdata från föregående exempel är:

Namn Type Värde
index1 heltal 1
index2 heltal 0
index3 heltal 0
index4 heltal 2
index5 heltal 1
index6 heltal 0
index7 heltal 3
notFoundIndex1 heltal -1
notFoundIndex2 heltal -1

längd

length(arg1)

Returnerar antalet element i en matris, tecken i en sträng eller rotnivåegenskaper i ett objekt.

Använd funktionen i length Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris, sträng eller objekt Matrisen som ska användas för att hämta antalet element, strängen som ska användas för att hämta antalet tecken eller det objekt som ska användas för att hämta antalet egenskaper på rotnivå.

Returvärde

Ett int.

Exempel

I följande exempel visas hur du använder length med en matris och en sträng:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arraylängd Int 3
stringLength Int tretton
objectLength Int 4

Du kan använda den här funktionen med en matris för att ange antalet iterationer när du skapar resurser. I följande exempel refererar parametern siteNames till en matris med namn som ska användas när webbplatser skapas:

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

Mer information om hur du använder den här funktionen med en matris finns i Resurs iteration i ARM-mallar.

maximalt

max(arg1)

Returnerar det maximala värdet från en matris med heltal eller en kommaavgränsad lista med heltal.

Använd funktionen i max Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris med heltal eller kommaavgränsad lista över heltal Samlingen för att hämta det maximala värdet.

Returvärde

En int som representerar det maximala värdet.

Exempel

I följande exempel visas hur du använder max med en matris och en lista med heltal:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayOutput Int 5
intOutput Int 5

minut

min(arg1)

Returnerar det minsta värdet från en matris med heltal eller en kommaavgränsad lista med heltal.

Använd funktionen i min Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris med heltal eller kommaavgränsad lista över heltal Samlingen för att hämta minimivärdet.

Returvärde

En int som representerar minimivärdet.

Exempel

I följande exempel visas hur du använder min med en matris och en lista med heltal:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayOutput Int 0
intOutput Int 0

intervall

range(startIndex, count)

Skapar en matris med heltal från ett start heltal och innehåller ett antal objekt.

Använd funktionen i range Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
startIndex Ja heltal Det första heltalet i matrisen. Summan av startIndex och antal får inte vara större än 2147483647.
antal Ja heltal Antalet heltal i matrisen. Måste vara ett heltal som inte är negativt upp till 10000.

Returvärde

En matris med heltal.

Exempel

I följande exempel visas hur du range använder funktionen:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
rangeOutput Matris [5, 6, 7]

hoppa över

skip(originalValue, numberToSkip)

Returnerar en matris med alla element efter det angivna talet i matrisen eller returnerar en sträng med alla tecken efter det angivna talet i strängen.

Använd funktionen i skip Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
originalValue Ja matris eller sträng Matrisen eller strängen som ska användas för att hoppa över.
numberToSkip Ja heltal Antalet element eller tecken som ska hoppa över. Om det här värdet är 0 eller mindre returneras alla element eller tecken i värdet. Om den är större än längden på matrisen eller strängen returneras en tom matris eller sträng.

Returvärde

En matris eller sträng.

Exempel

I följande exempel hoppar över det angivna antalet element i matrisen och det angivna antalet tecken i en sträng:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayOutput Matris ["tre"]
stringOutput Sträng två tre

ta

take(originalValue, numberToTake)

Returnerar en matris eller sträng. En matris har det angivna antalet element från början av matrisen. En sträng har det angivna antalet tecken från början av strängen.

Använd funktionen i take Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
originalValue Ja matris eller sträng Matrisen eller strängen som elementen ska hämtas från.
numberToTake Ja heltal Antalet element eller tecken att ta. Om det här värdet är 0 eller mindre returneras en tom matris eller sträng. Om den är större än längden på den angivna matrisen eller strängen returneras alla element i matrisen eller strängen.

Returvärde

En matris eller sträng.

Exempel

I följande exempel används det angivna antalet element från en matris och tecken från en sträng:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
arrayOutput Matris ["en", "två"]
stringOutput Sträng

tryGet

tryGet(itemToTest, keyOrIndex)

tryGet hjälper dig att undvika distributionsfel när du försöker komma åt en obefintlig egenskap eller ett index i ett objekt eller en matris. Om den angivna nyckeln eller indexet inte finns tryGet returnerar null i stället för att utlösa ett fel.

I Bicep använder du operatorn safe-dereference .

Parametrar

Parameter Obligatoriskt Type Beskrivning
itemToTest Ja matris, objekt Ett objekt eller en matris att titta på.
keyOrIndex Ja sträng, heltal En nyckel eller ett index som ska hämtas från matrisen eller objektet. Ett egenskapsnamn för objekt eller index för matriser.

Returvärde

Returnerar värdet vid nyckeln/indexet om det finns. Returnerar null om nyckeln/indexet saknas eller ligger utanför gränserna.

Exempel

I följande exempel kontrolleras om en matris, ett objekt och en sträng är tomma:

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

Utdata från föregående exempel är:

Namn Type Värde
region Sträng (NULL)
namn Sträng John Berg
firstColor Sträng Röd

tryIndexFromEnd

tryndexFromEnd(sourceArray, reverseIndex)

Funktionen tryIndexFromEnd är en säker version av indexFromEnd. Det hämtar ett värde från en matris genom att räkna bakåt från slutet utan att utlösa ett fel om indexet ligger utom räckhåll.

I Bicep använder du operatorn Reserverad indexåtkomstor och operatorn Säker dereference .

Parametrar

Parameter Obligatoriskt Type Beskrivning
sourceArray Ja matris Värdet för att hämta elementet genom att räkna bakåt från slutet.
reverseIndex Ja integer Det enbaserade indexet från slutet av matrisen.

Returvärde

Om indexet är giltigt (inom matrisgränsen) returnerar matriselementet vid det omvända indexet. Om indexet ligger utom intervallet returnerar null i stället för att utlösa ett fel.

Exempel

I följande exempel visas hur du tryIndexFromEnd använder funktionen:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
secondToLast Sträng apelsin

I följande exempel visas ett out-of-bound-scenario:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
outOfBound Sträng (null)

union

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

Returnerar en enskild matris eller ett objekt med alla element från parametrarna. För matriser inkluderas duplicerade värden en gång. För objekt inkluderas duplicerade egenskapsnamn bara en gång.

Använd funktionen i union Bicep.

Parametrar

Parameter Obligatoriskt Type Beskrivning
arg1 Ja matris eller objekt Det första värdet som ska användas för att koppla element.
arg2 Ja matris eller objekt Det andra värdet som ska användas för att koppla element.
fler argument Nej matris eller objekt Fler värden att använda för att koppla element.

Returvärde

En matris eller ett objekt.

Kommentarer

union function Använder sekvensen för parametrarna för att fastställa ordningen och värdena för resultatet.

För matriser itererar funktionen genom varje element i den första parametern och lägger till den i resultatet om den inte redan finns. Sedan upprepas processen för den andra parametern och eventuella fler parametrar. Om ett värde redan finns bevaras dess tidigare placering i matrisen.

För objekt läggs egenskapsnamn och värden från den första parametern till i resultatet. För senare parametrar läggs alla nya namn till i resultatet. Om en senare parameter har en egenskap med samma namn skriver det värdet över det befintliga värdet. Ordningen på egenskaperna är inte garanterad.

Funktionen union sammanfogar inte bara elementen på den översta nivån utan sammanfogar också rekursivt alla kapslade objekt i dem. Kapslade matrisvärden sammanfogas inte. Se det andra exemplet i följande avsnitt.

Exempel

I följande exempel visas hur du använder union med matriser och objekt:

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

Utdata från standardvärdena från föregående exempel är:

Namn Type Värde
objectOutput Objekt {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Matris ["en", "två", "tre", "fyra"]

I följande exempel visas funktionen för djupsammanslagning:

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

Utdata från föregående exempel är:

Namn Type Värde
objectOutput Objekt {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Matris [["one","two"],["three"],["four","two"]]

Om kapslade matriser sammanfogades är värdet för objectOutput.nestedArray [1, 2, 3, 4], och värdet för arrayOutput är [["one", "two", "three"], ["three", "four", "two"]].

Nästa steg