Compartir vía


Funciones de cadena para Bicep

En este artículo se describen las funciones de Bicep para trabajar con cadenas.

base64

base64(inputString)

Devuelve la representación de base64 de la cadena de entrada.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
inputString string Valor que se va a devolver como una representación de base64.

Valor devuelto

Una cadena que contiene la representación en base64.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar la función de base64.

param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'

var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)

output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

base64ToJson

base64ToJson(base64Value)

Convierte una representación en base64 a un objeto JSON.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
base64Value string La representación en base64 para convertir en un objeto JSON.

Valor devuelto

Un objeto JSON.

Ejemplos

En el ejemplo siguiente se utiliza la función base64ToJson para convertir un valor base64:

param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'

var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)

output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

base64ToString

base64ToString(base64Value)

Convierte una representación en base64 en una cadena.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
base64Value string La representación en base64 para convertir en una cadena.

Valor devuelto

Una cadena del valor convertido de base64.

Ejemplos

En el ejemplo siguiente se utiliza la función base64ToString para convertir un valor base64:

param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'

var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)

output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

concat

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

Combina varios valores de cadena y devuelve la cadena concatenada, o combina varias matrices y devuelve la matriz concatenada. Use la interpolación de cadenas en lugar de la función concat() para mejorar la legibilidad. Sin embargo, en algunos casos, como el reemplazo de cadenas en cadenas multilínea, es posible que tenga que recurrir a la función concat() o la función replace().

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
arg1 cadena o matriz La primera cadena o matriz para la concatenación.
más argumentos No cadena o matriz 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 cadenas solo se concatenan con otras cadenas.

Valor devuelto

Una cadena o matriz de valores concatenados.

Ejemplos

En el ejemplo siguiente se muestra una comparación entre el uso de la interpolación y el uso de la función concat(). Las dos salidas devuelven el mismo valor.

param prefix string = 'prefix'

output concatOutput string = concat(prefix, 'And', uniqueString(resourceGroup().id))
output interpolationOutput string = '${prefix}And${uniqueString(resourceGroup().id)}'

Las salidas del ejemplo anterior con el valor predeterminado son:

Nombre Tipo Value
concatOutput String prefixAnd5yj4yjf5mbg72
interpolationOutput String prefixAnd5yj4yjf5mbg72

La interpolación no se admite actualmente en cadenas de varias líneas. En el ejemplo siguiente se muestra una comparación entre el uso de la interpolación y el uso de la función concat().

var blocked = 'BLOCKED'

output concatOutput string = concat('''interpolation
is ''', blocked)
output interpolationOutput string = '''interpolation
is ${blocked}'''

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
concatOutput String interpolation\nis BLOCKED
interpolationOutput String interpolation\nis ${blocked}

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.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
contenedor matriz, objeto o cadena El valor que contiene el valor para buscar.
itemToFind cadena o entero El valor para buscar.

Valor devuelto

True si se encuentra el elemento; de lo contrario, False.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar contains con diferentes tipos:

param stringToTest string = 'OneTwoThree'
param objectToTest object = {
  one: 'a'
  two: 'b'
  three: 'c'
}
param arrayToTest array = [
  'one'
  'two'
  'three'
]

output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(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

dataUri

dataUri(stringToConvert)

Convierte un valor en un identificador URI de datos.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToConvert string El valor para convertir en un identificador URI de datos.

Valor devuelto

Una cadena con formato de identificador URI de datos.

Ejemplos

En el ejemplo siguiente se convierte un valor en un identificador URI de datos, y se convierte un identificador URI de datos en una cadena:

param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='

output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
dataUriOutput String data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hola mundo.

dataUriToString

dataUriToString(dataUriToConvert)

Convierte un valor con formato de identificador URI de datos en una cadena.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
dataUriToConvert string El valor del identificador URI para convertir.

Valor devuelto

Una cadena que contiene el valor convertido.

Ejemplos

En el ejemplo siguiente se convierte un valor en un identificador URI de datos, y se convierte un identificador URI de datos en una cadena:

param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='

output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
dataUriOutput String data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hola mundo.

empty

empty(itemToTest)

Determina si una matriz, un objeto o una cadena están vacíos o null.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
itemToTest matriz, objeto o cadena Valor que se va a comprobar si está vacío o null.

Valor devuelto

Devuelve True si el valor está vacío o null; de lo contrario, False.

Ejemplos

En el ejemplo siguiente se comprueba si una matriz, un objeto y una cadena están vacíos.

param testArray array = []
param testObject object = {}
param testString string = ''
param testNullString string?

output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)
output stringNull bool = empty(testNullString)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
arrayEmpty Bool True
objectEmpty Bool True
stringEmpty Bool True
stringNull Booleano True

endsWith

endsWith(stringToSearch, stringToFind)

Determina si una cadena termina con un valor. La comparación distingue entre mayúsculas y minúsculas.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToSearch string El valor que contiene el elemento para buscar.
stringToFind string El valor para buscar.

Valor devuelto

True si el último carácter o caracteres de la cadena coinciden con el valor; de lo contrario, False.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar las funciones startsWith y endsWith:

output startsTrue bool = startsWith('abcdef', 'ab')
output startsCapTrue bool = startsWith('abcdef', 'A')
output startsFalse bool = startsWith('abcdef', 'e')
output endsTrue bool = endsWith('abcdef', 'ef')
output endsCapTrue bool = endsWith('abcdef', 'F')
output endsFalse bool = endsWith('abcdef', 'e')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
startsTrue Bool True
startsCapTrue Bool True
startsFalse Bool False
endsTrue Bool True
endsCapTrue Bool True
endsFalse Bool False

first

first(arg1)

Devuelve el primer carácter de la cadena o el primer elemento de la matriz. Si se proporciona una cadena vacía, la función da como resultado una cadena vacía. En el caso de una matriz vacía, la función devuelve null.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
arg1 matriz o cadena El valor para recuperar el primer elemento o carácter.

Valor devuelto

Una cadena del primer carácter, o el tipo (cadena, entero, matriz u objeto) del primer elemento en una matriz.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar la primera función con una matriz y una cadena.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
arrayOutput String one
stringOutput String O

format

format(formatString, arg1, arg2, ...)

Crea una cadena con formato a partir de valores de entrada.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
formatString string La cadena de formato compuesta.
arg1 valor booleano, entero o cadena El valor que se va a incluir en la cadena con formato.
argumentos adicionales No valor booleano, entero o cadena Valores adicionales que se van a incluir en la cadena con formato.

Observaciones

Utilice esta función para dar formato a una cadena en el archivo de Bicep. Usa las mismas opciones de formato que el método System.String.Format en. NET.

Ejemplos

En el ejemplo siguiente se muestra cómo usar la función format.

param greeting string = 'Hello'
param name string = 'User'
param numberToFormat int = 8175133
param objectToFormat object = { prop: 'value' }

output formatTest string = format('{0}, {1}. Formatted number: {2:N0}', greeting, name, numberToFormat)
output formatObject string = format('objectToFormat: {0}', objectToFormat)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
formatTest String Hello, User. Formatted number: 8,175,133
formatObject String objectToFormat: {'prop':'value'}

guid

guid(baseString, ...)

Crea un valor en el formato de un identificador único global en función de los valores proporcionados como parámetros.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
baseString string El valor utilizado en la función hash para crear el GUID.
parámetros adicionales según sea necesario No string Puede agregar tantas cadenas como necesite para crear el valor que especifica el nivel de unicidad.

Observaciones

Esta función es útil cuando se necesita crear un valor en el formato de un identificador único global. Proporciona valores de parámetros que limitan el ámbito de unicidad del resultado. Puede especificar si el nombre es único para la suscripción, el grupo de recursos o la implementación.

El valor devuelto no es una cadena aleatoria, sino que es el resultado de una función hash en los parámetros. El valor devuelto tiene 36 caracteres. No es único globalmente. Para crear un nuevo GUID que no se base en el valor hash de los parámetros, use la función newGuid.

Nota:

El orden de los parámetros afecta al valor devuelto. Por ejemplo:

guid('hello', 'world') y guid('world', 'hello')

no devuelven el mismo valor.

En los ejemplos siguientes se muestra cómo utilizar un GUID para crear un valor único para niveles de uso común.

Único basado en la suscripción

guid(subscription().subscriptionId)

Único basado en el grupo de recursos

guid(resourceGroup().id)

Único basado en la implementación de un grupo de recursos

guid(resourceGroup().id, deployment().name)

La función guid implementa el algoritmo de RFC 4122 §4.3. El origen original se puede encontrar en GuidUtility con algunas modificaciones.

Valor devuelto

Una cadena que contiene 36 caracteres en el formato de un identificador único global.

Ejemplos

El ejemplo siguiente devuelve los resultados de guid:

output guidPerSubscription string = guid(subscription().subscriptionId)
output guidPerResourceGroup string = guid(resourceGroup().id)
output guidPerDeployment string = guid(resourceGroup().id, deployment().name)

indexOf

indexOf(stringToSearch, stringToFind)

Devuelve la primera posición de un valor dentro de una cadena. La comparación distingue entre mayúsculas y minúsculas.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToSearch string El valor que contiene el elemento para buscar.
stringToFind string El valor para buscar.

Valor devuelto

Un entero que representa la posición del elemento que se va a buscar. El valor está basado en 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:

output firstT int = indexOf('test', 't')
output lastT int = lastIndexOf('test', 't')
output firstString int = indexOf('abcdef', 'CD')
output lastString int = lastIndexOf('abcdef', 'AB')
output notFound int = indexOf('abcdef', 'z')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

join

join(inputArray, delimiter)

Combina una matriz de cadenas en una sola cadena, separadas mediante un delimitador.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
inputArray Yes Una matriz de cadenas. Una matriz de cadenas que se va a combinar.
delimiter Delimitador que se utilizará para dividir la cadena.

Valor devuelto

Una cadena.

Ejemplos

En el ejemplo siguiente se combina la matriz de cadenas de entrada en cadenas delimitadas por una coma o un punto y coma.

var arrayString = [
  'one'
  'two'
  'three'
]

output firstOutput string = join(arrayString, ',')
output secondOutput string = join(arrayString, ';')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
firstOutput String "una,dos,tres"
secondOutput String "una;dos;tres"

Para esta función se necesita la versión 0.8.X o posterior de la CLI de Bicep.

json

json(arg1)

Convierte una cadena JSON válida en un tipo de datos JSON. Para más información, consulte función de json.

Espacio de nombres: sys.

last

last(arg1)

Devuelve el último carácter de la cadena, o el último elemento de la matriz.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
arg1 matriz o cadena El valor para recuperar el último elemento o carácter.

Valor devuelto

Una cadena del último carácter, o el tipo (cadena, entero, matriz u objeto) del último elemento de una matriz.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar la última función con una matriz y una cadena.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = last(arrayToTest)
output stringOutput string = 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(stringToSearch, stringToFind)

Devuelve la última posición de un valor dentro de una cadena. La comparación distingue entre mayúsculas y minúsculas.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToSearch string El valor que contiene el elemento para buscar.
stringToFind string El valor para buscar.

Valor devuelto

Un entero que representa la última posición del elemento que se va a buscar. El valor está basado en cero. Si no se encuentra el elemento, se devuelve -1.

Ejemplos

En el ejemplo siguiente se muestra cómo usar las funciones indexOf y lastIndexOf:

output firstT int = indexOf('test', 't')
output lastT int = lastIndexOf('test', 't')
output firstString int = indexOf('abcdef', 'CD')
output lastString int = lastIndexOf('abcdef', 'AB')
output notFound int = indexOf('abcdef', 'z')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

length

length(string)

Devuelve el número de caracteres en una cadena, elementos en una matriz o propiedades de nivel raíz en un objeto.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
arg1 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.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar length con una matriz y una cadena:

param arrayToTest array = [
  'one'
  'two'
  'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
  propA: 'one'
  propB: 'two'
  propC: 'three'
  propD: {
    'propD-1': 'sub'
    'propD-2': 'sub'
  }
}

output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

Devuelve un valor en el formato de un identificador único global. Esta función solo puede utilizarse en el valor predeterminado para un parámetro.

Espacio de nombres: sys.

Observaciones

Solo puede usar esta función dentro de una expresión para el valor predeterminado de un parámetro. El uso de esta función en cualquier otro lugar de un archivo de Bicep genera un error. La función no se permite en otras partes del archivo de Bicep porque devuelve un valor diferente cada vez que se le llama. La implementación del mismo archivo de Bicep con los mismos parámetros no produciría de forma confiable los mismos resultados.

La función newGuid difiere de la función guid en que no toma ningún parámetro. Cuando se llama a guid con el mismo parámetro, devuelve siempre el mismo identificador. Use guid cuando necesite generar de forma confiable el mismo GUID para un entorno específico. Use newGuid cuando necesite un identificador diferente cada vez, como en la implementación de recursos en un entorno de prueba.

La función newGuid usa la estructura de GUID en .NET Framework para generar el identificador único global.

Si usa la opción de volver a implementar una implementación que se completó correctamente en un momento anterior y esa implementación anterior incluye un parámetro que usa newGuid, el parámetro no se vuelve a evaluar. En su lugar, el valor del parámetro de la implementación anterior se reutiliza automáticamente en la implementación de reversión.

En un entorno de prueba, es posible que deba implementar repetidamente recursos que solo duran un corto tiempo. En lugar de construir nombres únicos, puede usar newGuid con uniqueString para crear nombres únicos.

Tenga cuidado al volver a implementar un archivo de Bicep que se base en la función newGuid para un valor predeterminado. Si vuelve a implementar y no proporciona un valor para el parámetro, la función se vuelve a evaluar. Si desea actualizar un recurso existente en lugar de crear uno nuevo, pase el valor de parámetro de la implementación anterior.

Valor devuelto

Una cadena que contiene 36 caracteres en el formato de un identificador único global.

Ejemplos

En el ejemplo siguiente se muestra un parámetro con un nuevo identificador.

param guidValue string = newGuid()

output guidOutput string = guidValue

El resultado del ejemplo anterior varía para cada implementación, pero será similar a:

Nombre Tipo Value
guidOutput string b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

En el ejemplo siguiente se usa la función newGuid para crear un nombre único para una cuenta de almacenamiento. Este archivo de Bicep puede funcionar en el entorno de prueba donde la cuenta de almacenamiento existe durante un tiempo breve y no se vuelve a implementar.

param guidValue string = newGuid()

var storageName = 'storage${uniqueString(guidValue)}'

resource myStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: storageName
  location: 'West US'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {}
}

output nameOutput string = storageName

El resultado del ejemplo anterior varía para cada implementación, pero será similar a:

Nombre Tipo Value
nameOutput string storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

Devuelve una cadena alineada a la derecha agregando caracteres a la izquierda hasta alcanzar la longitud total especificada.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
valueToPad cadena o entero Valor que se va a alinear a la derecha.
totalLength int El número total de caracteres de la cadena devuelta.
paddingCharacter No carácter individual El carácter que se va a usar para el relleno a la izquierda hasta alcanza la longitud total. El valor predeterminado es un espacio.

Si la cadena original es mayor que el número de caracteres que se va a rellenar, no se agrega ningún carácter.

Valor devuelto

Una cadena con al menos el número de caracteres especificados.

Ejemplos

En el ejemplo siguiente se muestra cómo rellenar el valor del parámetro proporcionado por el usuario agregando el carácter cero hasta que alcance el número total de caracteres.

param testString string = '123'

output stringOutput string = padLeft(testString, 10, '0')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
stringOutput String 0000000123

replace

replace(originalString, oldString, newString)

Devuelve una nueva cadena con todas las instancias de una cadena reemplazadas por otra cadena.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
originalString string Valor que tiene todas las instancias de una cadena reemplazadas por otra cadena.
oldString string Cadena que se va a quitar de la cadena original.
newString string La cadena que se va a agregar en lugar de la cadena eliminada.

Valor devuelto

Una cadena con los caracteres reemplazados.

Ejemplos

El ejemplo siguiente muestra cómo quitar todos los guiones de la cadena proporcionada por el usuario y cómo reemplazar parte de la cadena por otra cadena.

param testString string = '123-123-1234'

output firstOutput string = replace(testString, '-', '')
output secondOutput string = replace(testString, '1234', 'xxxx')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
firstOutput String 1231231234
secondOutput String 123-123-xxxx

skip

skip(originalValue, numberToSkip)

Devuelve una cadena con todos los caracteres después del número especificado de caracteres, o una matriz con todos los elementos después del número especificado de elementos.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
originalValue matriz o cadena La matriz o cadena que se usará para la omisión.
numberToSkip 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.

Ejemplos

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.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToSkip int = 2
param testString string = 'one two three'
param charactersToSkip int = 4

output arrayOutput array = skip(testArray, elementsToSkip)
output stringOutput string = skip(testString, charactersToSkip)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
arrayOutput Array ["three"]
stringOutput String two three

split

split(inputString, delimiter)

Devuelve una matriz de cadenas que contiene las subcadenas de la cadena de entrada que están delimitadas por los delimitadores especificados.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
inputString string La cadena que se va a dividir.
delimiter cadena o matriz de cadenas Delimitador que se utilizará para dividir la cadena.

Valor devuelto

Una matriz de cadenas.

Ejemplos

En el ejemplo siguiente se divide la cadena de entrada con una coma, y con una coma o un punto y coma.

param firstString string = 'one,two,three'
param secondString string = 'one;two,three'

var delimiters = [
  ','
  ';'
]

output firstOutput array = split(firstString, ',')
output secondOutput array = split(secondString, delimiters)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
firstOutput Array ["one", "two", "three"]
secondOutput Array ["one", "two", "three"]

startsWith

startsWith(stringToSearch, stringToFind)

Determina si una cadena empieza con un valor. La comparación distingue entre mayúsculas y minúsculas.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToSearch string El valor que contiene el elemento para buscar.
stringToFind string El valor para buscar.

Valor devuelto

True si el primer carácter o caracteres de la cadena coinciden con el valor; de lo contrario, False.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar las funciones startsWith y endsWith:

output startsTrue bool = startsWith('abcdef', 'ab')
output startsCapTrue bool = startsWith('abcdef', 'A')
output startsFalse bool = startsWith('abcdef', 'e')
output endsTrue bool = endsWith('abcdef', 'ef')
output endsCapTrue bool = endsWith('abcdef', 'F')
output endsFalse bool = endsWith('abcdef', 'e')

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
startsTrue Bool True
startsCapTrue Bool True
startsFalse Bool False
endsTrue Bool True
endsCapTrue Bool True
endsFalse Bool False

string

string(valueToConvert)

Convierte el valor especificado a una cadena. Las cadenas se devuelven tal cual. Otros tipos se convierten en su representación JSON equivalente. Si necesita convertir una cadena en JSON, es decir, añadirle comillas o caracteres de escape, puede usar substring(string([value]), 1, length(string([value]) - 2).

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
valueToConvert Any El valor que se convierte en cadena. Se puede convertir cualquier tipo de valor, incluidos objetos y matrices.

Valor devuelto

Cadena del valor convertido.

Ejemplos

En el ejemplo siguiente se muestra cómo convertir distintos tipos de valores en cadenas:

param testObject object = {
  valueA: 10
  valueB: 'Example Text'
}
param testArray array = [
  '\'a\''
  '"b"'
  '\\c\\'
]
param testInt int = 5
param testString string = 'foo " \' \\'

output objectOutput string = string(testObject)
output arrayOutput string = string(testArray)
output intOutput string = string(testInt)
output stringOutput string = string(testString)
output stringEscapedOutput string = substring(string([testString]), 1, length(string([testString])) - 2)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
objectOutput String {"valueA":10,"valueB":"Example Text"}
arrayOutput String ["'a'","\"b\"","\\c\\"]
intOutput String 5
stringOutput String foo " ' \
stringEscapedOutput String "foo \" ' \\"

substring

substring(stringToParse, startIndex, length)

Devuelve una subcadena que empieza en la posición de carácter especificada y que contiene el número especificado de caracteres.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToParse string La cadena original desde la que se extrae la subcadena.
startIndex No int La posición de carácter inicial basado en cero de la subcadena.
length No int El número de caracteres de la subcadena. Debe hacer referencia a una ubicación dentro de la cadena. Debe ser cero o mayor. Si se omite, se devuelve el resto de la cadena desde la posición inicial.

Valor devuelto

Subcadena. O bien, una cadena vacía si la longitud es cero.

Observaciones

La función genera un error cuando la subcadena supera el final de la cadena, o bien cuando la longitud es menor que cero. En el ejemplo siguiente se produce el error "Los parámetros index y length deben hacer referencia a una ubicación dentro de la cadena. El parámetro index: "0", el parámetro length: "11", la longitud del parámetro string: "10".

param inputString string = '1234567890'

var prefix = substring(inputString, 0, 11)

Ejemplos

En el ejemplo siguiente se extrae una subcadena de un parámetro.

param testString string = 'one two three'
output substringOutput string = substring(testString, 4, 3)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
substringOutput String two

take

take(originalValue, numberToTake)

Devuelve una cadena con el número especificado de caracteres desde el inicio de la cadena, o una matriz con el número especificado de elementos desde el inicio de la matriz.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
originalValue matriz o cadena La matriz o cadena de la que se van a tomar los elementos.
numberToTake 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.

Ejemplos

En el ejemplo siguiente se toma el número especificado de elementos de la matriz y de caracteres de la cadena.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToTake int = 2
param testString string = 'one two three'
param charactersToTake int = 2

output arrayOutput array = take(testArray, elementsToTake)
output stringOutput string = take(testString, charactersToTake)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
arrayOutput Array ["one", "two"]
stringOutput String en

toLower

toLower(stringToChange)

Convierte la cadena especificada a minúsculas.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToChange string Valor que se va a convertir a minúsculas.

Valor devuelto

Cadena convertida a minúsculas.

Ejemplos

En el siguiente ejemplo se convierte un valor de parámetro a minúsculas y a mayúsculas.

param testString string = 'One Two Three'

output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
toLowerOutput String one two three
toUpperOutput String ONE TWO THREE

toUpper

toUpper(stringToChange)

Convierte la cadena especificada a mayúsculas.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToChange string Valor que se va a convertir a mayúsculas.

Valor devuelto

Cadena convertida a mayúsculas.

Ejemplos

En el siguiente ejemplo se convierte un valor de parámetro a minúsculas y a mayúsculas.

param testString string = 'One Two Three'

output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
toLowerOutput String one two three
toUpperOutput String ONE TWO THREE

trim

trim(stringToTrim)

Quita todos los caracteres de espacio en blanco iniciales y finales de la cadena especificada.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToTrim string Valor que se recortará.

Valor devuelto

Cadena sin caracteres de espacio en blanco iniciales ni finales.

Ejemplos

En el ejemplo siguiente se recortan los caracteres de espacio en blanco del parámetro.

param testString string = '    one two three   '

output return string = trim(testString)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
return String one two three

uniqueString

uniqueString(baseString, ...)

Crea una cadena de hash determinista basada en los valores proporcionados como parámetros.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
baseString string Valor utilizado en la función hash para crear una cadena única.
parámetros adicionales según sea necesario No string Puede agregar tantas cadenas como necesite para crear el valor que especifica el nivel de unicidad.

Observaciones

Esta función es útil cuando se debe crear un nombre único para un recurso. Proporciona valores de parámetros que limitan el ámbito de unicidad del resultado. Puede especificar si el nombre es único para la suscripción, el grupo de recursos o la implementación.

El valor devuelto no es una cadena aleatoria, sino que es el resultado de una función hash. El valor devuelto tiene 13 caracteres. No es único globalmente. Puede que desee combinar el valor con un prefijo de su convención de nomenclatura para crear un nombre que sea más fácil de reconocer. En el ejemplo siguiente se muestra el formato del valor devuelto. El valor real varía según los parámetros proporcionados.

tcvhiyu5h2o5o

En los ejemplos siguientes se muestra cómo utilizar uniqueString a fin de crear un valor único para niveles de uso común.

Único basado en la suscripción

uniqueString(subscription().subscriptionId)

Único basado en el grupo de recursos

uniqueString(resourceGroup().id)

Único basado en la implementación de un grupo de recursos

uniqueString(resourceGroup().id, deployment().name)

En el ejemplo siguiente se muestra cómo crear un nombre único para una cuenta de almacenamiento basada en el grupo de recursos. Dentro del grupo de recursos, el nombre no es único si se crea de la misma manera.

resource mystorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'storage${uniqueString(resourceGroup().id)}'
  ...
}

Si necesita crear un nuevo nombre único cada vez que implemente un archivo de Bicep y no tiene intención de actualizar el recurso, puede usar la función utcNow con uniqueString. Podría utilizar este enfoque en un entorno de prueba. Para ver un ejemplo, consulte utcNow. Tenga en cuenta que la función utcNow solo se puede usar dentro de una expresión para el valor predeterminado de un parámetro.

Valor devuelto

Cadena que contiene 13 caracteres.

Ejemplos

En el ejemplo siguiente se devuelven los resultados de uniquestring:

output uniqueRG string = uniqueString(resourceGroup().id)
output uniqueDeploy string = uniqueString(resourceGroup().id, deployment().name)

uri

uri(baseUri, relativeUri)

Crea un URI absoluto mediante la combinación de la cadena de relativeUri y baseUri.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
baseUri string La cadena de uri base. Preste atención para observar el comportamiento relacionado con el control de la barra diagonal final ("/"), tal y como se describe a continuación en esta tabla.
relativeUri string La cadena de uri relativo que se agregará a la cadena de uri base.
  • Si baseUri termina con una barra diagonal final, el resultado simplemente va baseUri seguido de relativeUri. Si relativeUri también comienza con una barra diagonal inicial, la barra diagonal final y la barra diagonal inicial se combinarán en una.

  • Si baseUri no termina en una barra diagonal final, sucede una de las dos cosas.

    • Si baseUri no tiene barras diagonales en absoluto (aparte de "//" cerca del frente), el resultado simplemente va baseUri seguido de relativeUri.

    • Si baseUri tiene algunas barras diagonales, pero no termina con una barra diagonal, todo desde la última barra diagonal se quita de baseUri y el resultado va baseUri seguido de relativeUri.

Estos son algunos ejemplos:

uri('http://contoso.org/firstpath', 'myscript.sh') -> http://contoso.org/myscript.sh
uri('http://contoso.org/firstpath/', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/', '/myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json/', 'myscript.sh') -> http://contoso.org/firstpath/azuredeploy.json/myscript.sh

Para obtener detalles completos, los baseUri parámetros y relativeUri se resuelven como se especifica en RFC 3986, sección 5.

Valor devuelto

Una cadena que representa el identificador URI absoluto para los valores base y relativos.

Ejemplos

En el ejemplo siguiente se muestra cómo usar uri, uriComponent y uriComponentToString:

var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)

output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(uriEncoded)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

uriComponent

uricomponent(stringToEncode)

Codifica un identificador URI.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
stringToEncode string El valor para codificar.

Valor devuelto

Una cadena del valor codificado por el identificador URI.

Ejemplos

En el ejemplo siguiente se muestra cómo usar uri, uriComponent y uriComponentToString:

var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)

output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(uriEncoded)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

uriComponentToString

uriComponentToString(uriEncodedString)

Devuelve una cadena del valor codificado por el identificador URI.

Espacio de nombres: sys.

Parámetros

Parámetro Obligatorio Type Descripción
uriEncodedString string El valor codificado por el identificador URI para convertir en una cadena.

Valor devuelto

Una cadena descodificada del valor codificado por el identificador URI.

Ejemplos

En el ejemplo siguiente se muestra cómo usar uri, uriComponent y uriComponentToString:

var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)

output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(uriEncoded)

La salida del ejemplo anterior con el valor predeterminado es:

Nombre Tipo Value
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

Pasos siguientes