Funciones de matriz para plantillas de Resource Manager
En este artículo se describen las funciones de la plantilla para trabajar con matrices.
Para obtener una matriz de valores de cadena delimitada por un valor, consulte split.
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 más información, consulte las funciones de matriz.
array
array(convertToArray)
Convierte el valor en una matriz.
En Bicep, use la función array.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
convertToArray | Sí | int, string, array u object | Valor que se convierte en matriz. |
Valor devuelto
Matriz .
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar la función de matriz con diferentes tipos.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
intOutput | Array | [1] |
stringOutput | Array | ["efgh"] |
objectOutput | Array | [{"a": "b", "c": "d"}] |
concat
concat(arg1, arg2, arg3, ...)
Combina varias matrices y devuelve la matriz concatenada, o combina varios valores de cadena y devuelve la cadena concatenada.
En Bicep, use la función concat.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz o cadena | La primera matriz o cadena para la concatenación. |
más argumentos | No | matriz o cadena | Más matrices o cadenas en orden secuencial para la concatenación. |
Esta función puede tomar cualquier número de argumentos y puede aceptar cadenas o matrices para los parámetros. Sin embargo, no puede proporcionar ambas a la vez para los parámetros. Las matrices solo se concatenan con otras matrices.
Valor devuelto
Una cadena o matriz de valores concatenados.
Ejemplo
En el ejemplo siguiente se muestra cómo combinar dos matrices.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
return | Array | ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"] |
En el ejemplo siguiente se muestra cómo combinar dos valores de cadena y devolver una cadena concatenada.
{
"$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))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
concatOutput | String | prefix-5yj4yjf5mbg72 |
contains
contains(container, itemToFind)
Comprueba si una matriz contiene un valor, un objeto contiene una clave o una cadena contiene una subcadena. La comparación de cadena distingue mayúsculas de minúsculas. Pero, cuando se prueba si un objeto contiene una clave, la comparación no distingue mayúsculas de minúsculas.
En Bicep, use la función contains.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
contenedor | Sí | matriz, objeto o cadena | El valor que contiene el valor para buscar. |
itemToFind | Sí | cadena o entero | El valor para buscar. |
Valor devuelto
True si el elemento se encuentra; en caso contrario, False.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar contains con diferentes tipos:
{
"$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')]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
stringTrue | Bool | True |
stringFalse | Bool | False |
objectTrue | Bool | True |
objectFalse | Bool | False |
arrayTrue | Bool | True |
arrayFalse | Bool | False |
createArray
createArray(arg1, arg2, arg3, ...)
Crea una matriz a partir de los parámetros.
En Bicep, la función createArray
no se admite. Para construir una matriz, consulte el tipo de datos de la matriz de Bicep.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
args | No | Cadena, entero, matriz u objeto | Valores de la matriz. |
Valor devuelto
Matriz . Cuando no se proporciona ningún parámetro, devuelve una matriz vacía.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar createArray con diferentes tipos:
{
"$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()]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
stringArray | Array | ["a", "b", "c"] |
intArray | Array | [1, 2, 3] |
objectArray | Array | [{"one": "a", "two": "b", "three": "c"}] |
arrayArray | Array | [["one", "two", "three"]] |
emptyArray | Array | [] |
empty
empty(itemToTest)
Determina si una matriz, un objeto o una cadena están vacíos.
En Bicep, use la función empty.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
itemToTest | Sí | matriz, objeto o cadena | El valor para comprobar si está vacío. |
Valor devuelto
Devuelve True si el valor está vacío; en caso contrario, False.
Ejemplo
En el ejemplo siguiente se comprueba si una matriz, un objeto y una cadena están vacíos.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayEmpty | Bool | True |
objectEmpty | Bool | True |
stringEmpty | Bool | True |
first
first(arg1)
Devuelve el primer elemento de la matriz o el primer carácter de la cadena.
En Bicep, use la función first.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz o cadena | El valor para recuperar el primer elemento o carácter. |
Valor devuelto
El tipo (cadena, entero, matriz u objeto) del primer elemento en una matriz o el primer carácter de una cadena.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar la primera función con una matriz y una cadena.
{
"$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')]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | String | one |
stringOutput | String | O |
indexOf
indexOf(arrayToSearch, itemToFind)
Devuelve un entero para el índice de la primera aparición de un elemento en una matriz. La comparación distingue mayúsculas de minúsculas para las cadenas.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arrayToSearch | Sí | array | Matriz que se va a usar para buscar el índice del elemento buscado. |
itemToFind | Sí | int, string, array u object | Elemento que se va a buscar en la matriz. |
Valor devuelto
Entero que representa el primer índice del elemento en la matriz. El índice es de base cero. Si no se encuentra el elemento, se devuelve -1.
Ejemplos
En el ejemplo siguiente se muestra cómo utilizar las funciones indexOf y 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)]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
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 |
intersección
intersection(arg1, arg2, arg3, ...)
Devuelve una única matriz u objeto con los elementos comunes de los parámetros.
En Bicep, use la función intersection.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz u objeto | El primer valor que se utilizará para buscar elementos comunes. |
arg2 | Sí | matriz u objeto | El segundo valor que se utilizará para buscar elementos comunes. |
más argumentos | No | matriz u objeto | Más valores que se utilizarán para buscar elementos comunes. |
Valor devuelto
Una matriz o un objeto con los elementos comunes.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar la intersección con matrices y objetos.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
objectOutput | Object | {"one": "a", "three": "c"} |
arrayOutput | Array | ["two", "three"] |
last
last(arg1)
Devuelve el último elemento de la matriz o el último carácter de la cadena.
En Bicep, use la función last.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz o cadena | El valor para recuperar el último elemento o carácter. |
Valor devuelto
El tipo (cadena, entero, matriz u objeto) del último elemento de una matriz o el último carácter de una cadena.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar la última función con una matriz y una cadena.
{
"$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')]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | String | three |
stringOutput | String | e |
lastIndexOf
lastIndexOf(arrayToSearch, itemToFind)
Devuelve un entero para el índice de la última aparición de un elemento en una matriz. La comparación distingue mayúsculas de minúsculas para las cadenas.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arrayToSearch | Sí | array | Matriz que se va a usar para buscar el índice del elemento buscado. |
itemToFind | Sí | int, string, array u object | Elemento que se va a buscar en la matriz. |
Valor devuelto
Entero que representa el último índice del elemento en la matriz. El índice es de base cero. Si no se encuentra el elemento, se devuelve -1.
Ejemplos
En el ejemplo siguiente se muestra cómo utilizar las funciones indexOf y 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)]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Valor |
---|---|---|
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 |
length
length(arg1)
Devuelve el número de elementos de una matriz, caracteres de una cadena o propiedades de nivel raíz de un objeto.
En Bicep, use la función length.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz, cadena u objeto | La matriz que se usará para obtener el número de elementos, la cadena que se usará para obtener el número de caracteres o el objeto que se usará para obtener el número de propiedades del nivel raíz. |
Valor devuelto
Un entero.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar "length" con una matriz y una cadena.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 4 |
Puede usar esta función con una matriz para especificar el número de iteraciones al crear recursos. En el ejemplo siguiente, el parámetro siteNames debería hacer referencia a una matriz de nombres que se usará al crear los sitios web.
"copy": {
"name": "websitescopy",
"count": "[length(parameters('siteNames'))]"
}
Para más información sobre el uso de esta función con una matriz, consulte Iteración de recursos en las plantillas de Resource Manager.
max
max(arg1)
Devuelve el valor máximo de una matriz de enteros o una lista separada por comas de enteros.
En Bicep, use la función max.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz de enteros, o lista separada por comas de enteros | La colección para obtener el valor máximo. |
Valor devuelto
Un entero que representa el valor máximo.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar "max" con una matriz y una lista de enteros.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"arrayToTest": {
"type": "array",
"defaultValue": [ 0, 3, 2, 5, 4 ]
}
},
"resources": [],
"outputs": {
"arrayOutput": {
"type": "int",
"value": "[max(parameters('arrayToTest'))]"
},
"intOutput": {
"type": "int",
"value": "[max(0,3,2,5,4)]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | Int | 5 |
intOutput | Int | 5 |
Min
min(arg1)
Devuelve el valor mínimo de una matriz de enteros o una lista separada por comas de enteros.
En Bicep, use la función min.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz de enteros, o lista separada por comas de enteros | La colección para obtener el valor mínimo. |
Valor devuelto
Un entero que representa el valor mínimo.
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 |
range
range(startIndex, count)
Crea una matriz de enteros a partir de un entero de inicio y contiene un número de elementos.
En Bicep, use la función range.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
startIndex | Sí | int | El primer entero de la matriz. La suma de startIndex y count no debe ser mayor que 2 147 483 647. |
count | Sí | int | El número de enteros en la matriz. Debe ser un entero no negativo de hasta 10 000. |
Valor devuelto
Una matriz de enteros.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar la función "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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
rangeOutput | Array | [5, 6, 7] |
skip
skip(originalValue, numberToSkip)
Devuelve una matriz con todos los elementos después del número especificado de la matriz, o devuelve una cadena con todos los caracteres después del número especificado en la cadena.
En Bicep, use la función skip.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
originalValue | Sí | matriz o cadena | La matriz o cadena que se usará para la omisión. |
numberToSkip | Sí | int | El número de elementos o caracteres que se van a omitir. Si este valor es 0 o un valor inferior, se devuelven todos los elementos o caracteres del valor. Si es mayor que la longitud de la matriz o la cadena, se devuelve una matriz o cadena vacía. |
Valor devuelto
Una matriz o cadena.
Ejemplo
En el ejemplo siguiente se omite el número especificado de elementos de la matriz, y el número especificado de caracteres de la cadena.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | Array | ["three"] |
stringOutput | String | two three |
take
take(originalValue, numberToTake)
Devuelve una matriz o una cadena. Una matriz tiene el número especificado de elementos desde el principio de la matriz. Una cadena tiene el número especificado de caracteres desde el principio de la cadena.
En Bicep, use la función take.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
originalValue | Sí | matriz o cadena | La matriz o cadena de la que se van a tomar los elementos. |
numberToTake | Sí | int | El número de elementos o caracteres que se van a tomar. Si este valor es 0 o un valor inferior, se devolverá una matriz o cadena vacía. Si es mayor que la longitud de la matriz o cadena especificada, se devuelven todos los elementos de la matriz o cadena. |
Valor devuelto
Una matriz o cadena.
Ejemplo
En el ejemplo siguiente se toma el número especificado de elementos de la matriz y de caracteres de la cadena.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
arrayOutput | Array | ["one", "two"] |
stringOutput | String | en |
union
union(arg1, arg2, arg3, ...)
Devuelve una única matriz u objeto con todos los elementos de los parámetros. Para las matrices, los valores duplicados se incluyen una vez. Para los objetos, los nombres de propiedad duplicados solo se incluyen una vez.
En Bicep, use la función union.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
arg1 | Sí | matriz u objeto | El primer valor que se utiliza para unir elementos. |
arg2 | Sí | matriz u objeto | El segundo valor que se utiliza para unir elementos. |
más argumentos | No | matriz u objeto | Más valores que se utilizan para unir elementos. |
Valor devuelto
Una matriz u objeto.
Comentarios
La función de unión usa la secuencia de los parámetros para determinar el orden y los valores del resultado.
Para las matrices, la función se itera por cada elemento del primer parámetro y lo agrega al resultado si no está presente. A continuación, repite el proceso para el segundo parámetro y los parámetros adicionales. Si un valor ya existe, se conserva su ubicación anterior en la matriz.
En el caso de los objetos, los nombres de propiedad y los valores del primer parámetro se agregan al resultado. Para los parámetros posteriores, se agregarán los nuevos nombres al resultado. Si un parámetro posterior tiene una propiedad con el mismo nombre, ese valor sobrescribe el valor existente. El orden de las propiedades no está garantizado.
La función union no solo combina los elementos de nivel superior, sino que también combina de forma recursiva los objetos anidados dentro de ellos. Los valores de matriz anidados no se combinan. Consulte el segundo ejemplo de la sección siguiente.
Ejemplo
En el ejemplo siguiente se muestra cómo utilizar "union" con matrices y objetos.
{
"$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'))]"
}
}
}
La salida del ejemplo anterior con el valor predeterminado es:
Nombre | Tipo | Value |
---|---|---|
objectOutput | Object | {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"} |
arrayOutput | Array | ["one", "two", "three", "four"] |
En el ejemplo siguiente se muestra la capacidad de combinación profunda:
{
"$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'))]"
}
}
}
El resultado del ejemplo anterior es:
Nombre | Tipo | Value |
---|---|---|
objectOutput | Object | {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]} |
arrayOutput | Array | [["one","two"],["three"],["four","two"]] |
Si se combinaron matrices anidadas, el valor de objectOutput.nestedArray sería [1, 2, 3, 4], y el valor de arrayOutput sería [["one", "two", "three"], ["three", "four", "two"]].
Pasos siguientes
- Para obtener una descripción de las secciones de una plantilla de ARM, vea Nociones sobre la estructura y la sintaxis de las plantillas de Azure Resource Manager.