Partage via


Fonctions de chaîne pour Bicep

Cet article décrit les fonctions Bicep pour l’utilisation de chaînes.

base64

base64(inputString)

Retourne la représentation en base 64 de la chaîne d'entrée.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
inputString Oui string La valeur à retourner sous la forme d’une représentation en base64.

Valeur retournée

Une chaîne contenant la représentation en base64.

Exemples

L’exemple suivant montre comment utiliser la fonction 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

base64ToJson

base64ToJson(base64Value)

Convertit une représentation en base64 en un objet JSON.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
base64Value Oui string La représentation en base64 à convertir en un objet JSON.

Valeur retournée

Un objet JSON.

Exemples

L’exemple suivant utilise la fonction base64ToJson pour convertir une valeur 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

base64ToString

base64ToString(base64Value)

Convertit une représentation en base64 en une chaîne.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
base64Value Oui string La représentation en base64 à convertir en une chaîne.

Valeur retournée

Une chaîne de la valeur base64 convertie.

Exemples

L’exemple suivant utilise la fonction base64ToString pour convertir une valeur 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

concat

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

Combine plusieurs valeurs de chaîne et retourne la chaine concaténée, ou combine plusieurs tableaux et retourne le tableau concaténé. Utilisez une interpolation de chaîne plutôt que la fonction concat() pour améliorer la lisibilité. Toutefois, dans certains cas, comme le remplacement de chaînes dans des chaînes multilignes, vous devez peut-être revenir à l’utilisation de la fonction concat() ou de la fonction replace().

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui chaîne ou tableau Première chaîne ou premier tableau pour la concaténation.
arguments supplémentaires Non chaîne ou tableau Chaînes ou tableaux supplémentaires en ordre séquentiel pour la concaténation.

Cette fonction peut prendre n’importe quel nombre d’arguments et accepter à la fois des chaînes ou des tableaux pour les paramètres. Toutefois, vous ne pouvez pas fournir à la fois des tableaux et des chaînes pour les paramètres. Les chaînes sont concaténées uniquement avec d’autres chaînes.

Valeur retournée

Chaîne ou tableau de valeurs concaténées.

Exemples

L’exemple suivant montre une comparaison entre l’utilisation de l’interpolation et l’utilisation de la fonction concat(). Les deux sorties retournent la même valeur.

param prefix string = 'prefix'

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

Les sorties de l’exemple précédent avec la valeur par défaut sont les suivantes :

Nom Type Valeur
concatOutput String prefixAnd5yj4yjf5mbg72
interpolationOutput String prefixAnd5yj4yjf5mbg72

Actuellement, l’interpolation n’est pas prise en charge dans les chaînes multilignes. L’exemple suivant montre une comparaison entre l’utilisation de l’interpolation et l’utilisation de la fonction concat().

var blocked = 'BLOCKED'

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
concatOutput String interpolation\nis BLOQUÉE
interpolationOutput String interpolation\nis ${blocked}

contains

contains(container, itemToFind)

Vérifie si un tableau contient une valeur, un objet contient une clé ou une chaîne contient une sous-chaîne. La comparaison de chaînes est sensible à la casse. Cependant, quand vous testez si un objet contient une clé, la comparaison n’est pas sensible à la casse.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
conteneur Oui tableau, objet ou chaîne La valeur qui contient la valeur à rechercher.
itemToFind Oui chaîne ou entier La valeur à trouver.

Valeur retournée

True si l’élément est trouvé ; sinon, False.

Exemples

L’exemple suivant montre comment utiliser contains avec différents types :

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
stringTrue Bool True
stringFalse Bool False
objectTrue Bool True
objectFalse Bool False
arrayTrue Bool True
arrayFalse Bool False

dataUri

dataUri(stringToConvert)

Convertit une valeur en un URI de données.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToConvert Oui string Valeur à convertir en URI de données.

Valeur retournée

Une chaîne formatée en tant qu’URI de données.

Exemples

L’exemple suivant convertit une valeur en un URI de données et convertit un URI de données en chaîne :

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

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
dataUriOutput String data: texte/brut;jeu de caractèresdata:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hello, World!

dataUriToString

dataUriToString(dataUriToConvert)

Convertit une valeur formatée en URI de données en chaîne.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
dataUriToConvert Oui string Valeur d’URI de données à convertir.

Valeur retournée

Chaîne contenant la valeur convertie.

Exemples

L’exemple suivant convertit une valeur en un URI de données et convertit un URI de données en chaîne :

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

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
dataUriOutput String data: texte/brut;jeu de caractèresdata:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hello, World!

empty

empty(itemToTest)

Détermine si un tableau, un objet ou une chaîne est vide ou null.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
itemToTest Oui tableau, objet ou chaîne Valeur à vérifier si elle est vide ou null.

Valeur retournée

Retourne True si la valeur est vide ou null ; sinon, False.

Exemples

L’exemple suivant vérifie si un tableau, un objet et une chaîne sont vides.

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayEmpty Bool True
objectEmpty Bool True
stringEmpty Bool True
stringNull Bool True

endsWith

endsWith(stringToSearch, stringToFind)

Détermine si une chaîne se termine par une valeur. La comparaison respecte la casse.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToSearch Oui string La valeur qui contient l’élément à rechercher.
stringToFind Oui string La valeur à trouver.

Valeur retournée

True si le dernier caractère ou les caractères de la chaîne correspondent à la valeur ; sinon, False.

Exemples

L'exemple suivant montre comment utiliser les fonctions startsWith et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
startsTrue Bool True
startsCapTrue Bool True
startsFalse Bool False
endsTrue Bool True
endsCapTrue Bool True
endsFalse Bool False

first

first(arg1)

Retourne le premier caractère de la chaîne ou le premier élément du tableau. Si une chaîne vide est donnée, la fonction produit une chaîne vide. Dans le cas d’un tableau vide, la fonction retourne null.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui tableau ou chaîne La valeur permettant de récupérer le premier élément ou caractère.

Valeur retournée

Chaîne du premier caractère ou type (chaîne, entier, tableau ou objet) du premier élément d’un tableau.

Exemples

L’exemple suivant montre comment utiliser la première fonction avec un tableau et une chaîne.

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

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayOutput String one
stringOutput String O

format

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

Crée une chaîne mise en forme à partir des valeurs d’entrée.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
formatString Oui string Chaîne de format composite.
arg1 Oui chaîne, entier ou valeur booléenne Valeur à inclure dans la chaîne mise en forme.
arguments supplémentaires Non chaîne, entier ou valeur booléenne Valeurs supplémentaires à inclure dans la chaîne mise en forme.

Notes

Utilisez cette fonction pour mettre en forme une chaîne dans votre fichier Bicep. Cette fonction utilise les mêmes options de mise en forme que la méthode System.String.Format dans .NET.

Exemples

L’exemple suivant explique comment utiliser la fonction 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
formatTest String Hello, User. Formatted number: 8,175,133
formatObject Chaîne objectToFormat: {'prop':'value'}

guid

guid(baseString, ...)

Crée une valeur sous la forme d’un identificateur global unique basé sur les valeurs fournies comme paramètres.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
baseString Oui string Valeur utilisée dans la fonction de hachage pour créer le GUID.
paramètres supplémentaires le cas échéant Non string Vous pouvez ajouter autant de chaînes que nécessaire pour créer la valeur qui spécifie le niveau d’unicité.

Notes

Cette fonction est utile quand vous devez créer une valeur sous la forme d’un identificateur global unique. Vous fournissez des valeurs de paramètre qui limitent l’étendue d’unicité pour le résultat. Vous pouvez spécifier si le nom est unique pour l’abonnement, le groupe de ressources ou le déploiement.

La valeur retournée n’est pas une chaîne aléatoire, mais le résultat d’une fonction de hachage exécutée sur les paramètres. La valeur renvoyée comprend 36 caractères. Elle n’est pas globalement unique. Pour créer un autre GUID non basé sur cette valeur de hachage des paramètres, utilisez la fonction newGuid.

Notes

L’ordre des paramètres affecte la valeur retournée. Par exemple :

guid('hello', 'world') et guid('world', 'hello')

ne retournent pas la même valeur.

Les exemples suivants montrent comment utiliser guid pour créer une valeur unique pour des niveaux couramment utilisés.

Unique limité à l’abonnement

guid(subscription().subscriptionId)

Unique limité au groupe de ressources

guid(resourceGroup().id)

Unique limité au déploiement pour un groupe de ressources

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

La fonction guid implémente l’algorithme à partir de RFC 4122 §4.3. La source d’origine se trouve dans GuidUtility avec quelques modifications.

Valeur retournée

Chaîne contenant 36 caractères sous la forme d’un identificateur global unique.

Exemples

L’exemple suivant retourne les résultats du 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)

Retourne la première position d’une valeur dans une chaîne. La comparaison respecte la casse.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToSearch Oui string La valeur qui contient l’élément à rechercher.
stringToFind Oui string La valeur à trouver.

Valeur retournée

Entier qui représente la position de l’élément à rechercher. La valeur est basée sur zéro. Si l’élément est introuvable, la valeur -1 est retournée.

Exemples

L'exemple suivant montre comment utiliser les fonctions indexOf et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

join

join(inputArray, delimiter)

Joint un tableau de chaînes à une chaîne unique, séparés à l’aide d’un délimiteur.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
inputArray Yes Tableau de chaînes. Tableau de chaînes à joindre.
delimiter Oui Le séparateur à utiliser pour fractionner la chaîne.

Valeur retournée

Chaîne.

Exemples

L’exemple suivant joint le tableau de chaînes d’entrée dans des chaînes délimitées par une virgule ou un point-virgule.

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

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
firstOutput String « one,two,three »
secondOutput String « one;two;three »

Cette fonction nécessite la version 0.8.X du CLI de Bicep ou une version ultérieure.

json

json(arg1)

Convertit une chaîne JSON valide en un type de données JSON. Pour plus d’informations, consultez la fonction json.

Espace de noms : sys.

last

last(arg1)

Retourne le dernier caractère de la chaîne ou le dernier élément du tableau.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui tableau ou chaîne La valeur permettant de récupérer le dernier élément ou caractère.

Valeur retournée

Chaîne du dernier caractère ou type (chaîne, entier, tableau ou objet) du dernier élément d’un tableau.

Exemples

L’exemple suivant indique comment utiliser la dernière fonction avec un tableau et une chaîne.

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

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayOutput String three
stringOutput String e

lastIndexOf

lastIndexOf(stringToSearch, stringToFind)

Retourne la dernière position d’une valeur dans une chaîne. La comparaison respecte la casse.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToSearch Oui string La valeur qui contient l’élément à rechercher.
stringToFind Oui string La valeur à trouver.

Valeur retournée

Entier qui représente la dernière position de l’élément à rechercher. La valeur est basée sur zéro. Si l’élément est introuvable, la valeur -1 est retournée.

Exemples

L'exemple suivant montre comment utiliser les fonctions indexOf et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

length

length(string)

Retourne le nombre d’éléments d’un tableau, les caractères d’une chaîne ou les propriétés au niveau de la racine d’un objet.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui tableau, chaîne ou objet Tableau à utiliser pour l’obtention du nombre d’éléments, ou chaîne à utiliser pour l’obtention du nombre de caractères, ou l’objet à utiliser pour l’obtention du nombre de propriétés au niveau de la racine.

Valeur retournée

Un entier.

Exemples

L’exemple suivant montre comment utiliser la longueur avec un tableau et une chaîne :

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

Retourne une valeur sous la forme d’un identificateur global unique. Cette fonction peut uniquement être utilisée dans la valeur par défaut d’un paramètre.

Espace de noms : sys.

Notes

Vous pouvez uniquement utiliser cette fonction dans une expression pour la valeur par défaut d’un paramètre. Son utilisation partout ailleurs dans un fichier Bicep retourne une erreur. La fonction n’est pas autorisée dans d’autres parties du fichier Bicep, car elle retourne une valeur différente chaque fois qu’elle est appelée. Le déploiement du même fichier Bicep avec les mêmes paramètres ne produit pas forcément les mêmes résultats.

La fonction newGuid diffère de la fonction guid, car elle ne prend aucun paramètre. Quand vous appelez la fonction guid avec les mêmes paramètres, elle retourne toujours le même identificateur. Utilisez guid quand vous devez générer invariablement le même GUID dans un environnement spécifique. Utilisez newGuid pour générer un identificateur différent chaque fois, par exemple pour le déploiement de ressources dans un environnement de test.

La fonction newGuid utilise la structure Guid dans le .NET Framework pour générer l’identificateur global unique.

Si vous choisissez l’option de redéployer un déploiement précédent réussi et que ce déploiement inclut un paramètre qui utilise newGuid, le paramètre n’est pas réévalué. Au lieu de cela, la valeur du paramètre du déploiement précédent est automatiquement réutilisée dans le déploiement de la restauration.

Dans un environnement de test, vous devrez peut-être déployer à plusieurs reprises des ressources utilisables uniquement pendant une courte période. Au lieu de construire des noms uniques, vous pouvez utiliser newGuid avec uniqueString pour créer des noms uniques.

Soyez prudent quand vous redéployez un fichier Bicep basé sur la fonction newGuid pour une valeur par défaut. Si vous effectuez un tel déploiement sans fournir de valeur pour le paramètre, la fonction est réévaluée. Si vous souhaitez mettre à jour une ressource existante au lieu d’en créer une autre, passez la valeur du paramètre qui était utilisée dans le déploiement précédent.

Valeur retournée

Chaîne contenant 36 caractères sous la forme d’un identificateur global unique.

Exemples

L’exemple suivant montre un paramètre avec un nouvel identificateur.

param guidValue string = newGuid()

output guidOutput string = guidValue

La sortie de l’exemple précédent varie pour chaque déploiement, mais elle sera semblable à celle-ci :

Nom Type Valeur
guidOutput string b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

L’exemple suivant utilise la fonction newGuid pour créer un nom unique de compte de stockage. Ce fichier Bicep peut convenir dans un environnement de test où le compte de stockage est utilisé pendant une courte période et n’est pas redéployé.

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

La sortie de l’exemple précédent varie pour chaque déploiement, mais elle sera semblable à celle-ci :

Nom Type Valeur
nameOutput string storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

Renvoie une chaîne alignée à droite en lui ajoutant des caractères sur la gauche jusqu’à ce que la longueur totale spécifiée ait été atteinte.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
valeur_à_remplir Oui chaîne ou entier Valeur à aligner à droite.
longueur_totale Oui int Nombre total de caractères de la chaîne renvoyée.
caractère_de_remplissage Non caractère unique Caractère de remplissage à insérer sur la gauche jusqu’à ce que la longueur totale soit atteinte. La valeur par défaut est un espace.

Si la chaîne d’origine est plus longue que le nombre de caractères de remplissage, aucun caractère n’est ajouté.

Valeur retournée

Chaîne avec au moins le nombre de caractères spécifié.

Exemples

L’exemple ci-après indique comment remplir la valeur de paramètre fournie par l’utilisateur avec le caractère zéro jusqu’à atteindre le nombre total de caractères.

param testString string = '123'

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
stringOutput String 0000000123

remplacer

replace(originalString, oldString, newString)

Renvoie une nouvelle chaîne dans laquelle toutes les instances d’une chaîne ont été remplacées par une autre.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
chaîne_initiale Oui string La valeur qu’ont toutes les instances d’une chaîne ont été remplacées par une autre.
oldString Oui string Chaîne à supprimer de la chaîne initiale.
newString Oui string Chaîne à ajouter à la place de la chaîne supprimée.

Valeur retournée

Chaîne contenant les caractères remplacés.

Exemples

L’exemple suivant illustre comment supprimer tous les tirets de la chaîne fournie par l’utilisateur et comment remplacer une partie de la chaîne par une autre chaîne.

param testString string = '123-123-1234'

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
firstOutput String 1231231234
secondOutput String 123-123-xxxx

skip

skip(originalValue, numberToSkip)

Retourne une chaîne avec tous les caractères après le nombre spécifié de caractères, ou un tableau avec tous les éléments après le nombre spécifié d’éléments.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
originalValue Oui tableau ou chaîne Tableau ou chaîne à utiliser pour ignorer les caractères.
numberToSkip Oui int Nombre d’éléments ou de caractères à ignorer. Si cette valeur est inférieure ou égale à 0, tous les éléments ou caractères de la valeur sont renvoyés. Si elle est supérieure à la longueur du tableau ou de la chaîne, un tableau ou une chaîne vide est retourné.

Valeur retournée

Tableau ou chaîne.

Exemples

L’exemple suivant ignore le nombre spécifié d’éléments dans le tableau et le nombre spécifié de caractères dans une chaîne.

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayOutput Array ["three"]
stringOutput String two three

split

split(inputString, delimiter)

Renvoie un tableau de chaînes qui contient les sous-chaînes de la chaîne d’entrée séparées par les délimiteurs spécifiés.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
inputString Oui string Chaîne à fractionner.
delimiter Oui chaîne ou tableau de chaînes Le séparateur à utiliser pour fractionner la chaîne.

Valeur retournée

Tableau de chaînes.

Exemples

L’exemple suivant fractionne la chaîne d’entrée par une virgule et par une virgule ou un point-virgule.

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
firstOutput Array ["one", "two", "three"]
secondOutput Array ["one", "two", "three"]

startsWith

startsWith(stringToSearch, stringToFind)

Détermine si une chaîne commence par une valeur. La comparaison respecte la casse.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToSearch Oui string La valeur qui contient l’élément à rechercher.
stringToFind Oui string La valeur à trouver.

Valeur retournée

True si le premier caractère ou les caractères de la chaîne correspondent à la valeur ; sinon, False.

Exemples

L'exemple suivant montre comment utiliser les fonctions startsWith et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
startsTrue Bool True
startsCapTrue Bool True
startsFalse Bool False
endsTrue Bool True
endsCapTrue Bool True
endsFalse Bool False

string

string(valueToConvert)

Convertit la valeur spécifiée en chaîne. Les chaînes sont retournées en l’état. D’autres types sont convertis en leur représentation JSON équivalente. Si vous devez convertir une chaîne en JSON, c’est-à-dire le guillemet/l’échappement, vous pouvez utiliser substring(string([value]), 1, length(string([value]) - 2).

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
valueToConvert Oui Quelconque Valeur à convertir en chaîne. N’importe quel type de valeur peut être converti, y compris les objets et des tableaux.

Valeur retournée

Chaîne de la valeur convertie.

Exemples

L’exemple suivant montre comment convertir différents types de valeurs de chaînes :

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
objectOutput String {"valueA":10,"valueB":"Example Text"}
arrayOutput String ["'a'","\"b\"","\\c\\"]
intOutput String 5
stringOutput String foo " ' \
stringEscapedOutput Chaîne "foo \" ' \\"

substring

substring(stringToParse, startIndex, length)

Retourne une sous-chaîne qui commence à la position de caractère spécifiée et qui contient le nombre de caractères spécifié.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
chaîne_à_analyser Oui string La chaîne d’origine de laquelle la sous-chaîne est extraite.
index_début Non int La position de caractère (commençant à zéro) de la sous-chaîne.
length Non int Le nombre de caractères de la sous-chaîne. Doit faire référence à un emplacement au sein de la chaîne. Doit être égal à zéro ou supérieur. En cas d’omission, le reste de la chaîne à partir de la position de début sera retourné.

Valeur retournée

Sous-chaîne. Ou une chaîne vide si la longueur est égale à zéro.

Notes

La fonction échoue lorsque la sous-chaîne s’étend au-delà de la fin de la chaîne ou lorsque la longueur est inférieure à zéro. L’exemple suivant échoue avec l’erreur « Les paramètres d’index et de longueur doivent correspondre à un emplacement au sein de la chaîne. Le paramètre d'index : '0', le paramètre de longueur : '11', le paramètre de longueur de la chaîne : '10' ».

param inputString string = '1234567890'

var prefix = substring(inputString, 0, 11)

Exemples

L’exemple suivant extrait une sous-chaîne à partir d’un paramètre.

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
substringOutput String two

take

take(originalValue, numberToTake)

Retourne une chaîne avec le nombre spécifié de caractères à partir du début de la chaîne, ou un tableau avec le nombre spécifié d’éléments à partir du début du tableau.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
originalValue Oui tableau ou chaîne Tableau ou chaîne à partir duquel les éléments sont tirés.
numberToTake Oui int Nombre d’éléments ou de caractères à prendre. Si cette valeur est inférieure ou égale à 0, une chaîne ou un tableau vide est renvoyé. Si elle est supérieure à la longueur du tableau ou de la chaîne, tous les éléments du tableau ou de la chaîne sont retournés.

Valeur retournée

Tableau ou chaîne.

Exemples

L’exemple suivant prend le nombre spécifié d’éléments du tableau, et les caractères d’une chaîne.

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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayOutput Array ["one", "two"]
stringOutput String sur

toLower

toLower(stringToChange)

Convertit la chaîne spécifiée en minuscules.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
chaîne_à_modifier Oui string La valeur à convertir en minuscules.

Valeur retournée

Chaîne convertie en minuscules.

Exemples

L’exemple ci-après convertit une valeur de paramètre en minuscules et en majuscules.

param testString string = 'One Two Three'

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
toLowerOutput String one two three
toUpperOutput String ONE TWO THREE

toUpper

toUpper(stringToChange)

Convertit la chaîne spécifiée en majuscules.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
chaîne_à_modifier Oui string La valeur à convertir en majuscules.

Valeur retournée

Chaîne convertie en majuscules.

Exemples

L’exemple ci-après convertit une valeur de paramètre en minuscules et en majuscules.

param testString string = 'One Two Three'

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

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
toLowerOutput String one two three
toUpperOutput String ONE TWO THREE

trim

trim(stringToTrim)

Supprime tous les espaces de début et de fin de la chaîne indiquée.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToTrim Oui string La valeur à supprimer.

Valeur retournée

Chaîne sans les premiers et derniers caractères d’espace.

Exemples

L’exemple suivant supprime les espaces à partir du paramètre.

param testString string = '    one two three   '

output return string = trim(testString)

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
return String one two three

uniqueString

uniqueString(baseString, ...)

Crée une chaîne de hachage déterministe basée sur les valeurs fournies en tant que paramètres.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
baseString Oui string La valeur utilisée dans la fonction de hachage pour créer une chaîne unique.
paramètres supplémentaires le cas échéant Non string Vous pouvez ajouter autant de chaînes que nécessaire pour créer la valeur qui spécifie le niveau d’unicité.

Notes

Cette fonction est utile lorsque vous avez besoin de créer un nom unique pour une ressource. Vous fournissez des valeurs de paramètre qui limitent l’étendue d’unicité pour le résultat. Vous pouvez spécifier si le nom est unique pour l’abonnement, le groupe de ressources ou le déploiement.

La valeur retournée n’est pas une chaîne aléatoire, mais le résultat d’une fonction de hachage. La valeur renvoyée comprend 13 caractères. Elle n’est pas globalement unique. Il se peut que vous souhaitiez associer un préfixe de votre convention d’affectation de noms à la valeur pour créer un nom explicite. L’exemple suivant montre le format de la valeur renvoyée. La valeur réelle varie en fonction des paramètres fournis.

tcvhiyu5h2o5o

Les exemples suivants montrent comment utiliser uniqueString afin de créer une valeur unique pour des niveaux couramment utilisés.

Unique limité à l’abonnement

uniqueString(subscription().subscriptionId)

Unique limité au groupe de ressources

uniqueString(resourceGroup().id)

Unique limité au déploiement pour un groupe de ressources

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

L'exemple suivant montre comment créer un nom unique pour un compte de stockage basé sur votre groupe de ressources. Dans le groupe de ressources, le nom n’est pas unique s’il est construit de la même façon.

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

Si vous devez créer un nom unique chaque fois que vous déployez un fichier Bicep, et que vous n’envisagez pas de mettre à jour la ressource, utilisez la fonction utcNow avec uniqueString. Vous pouvez utiliser cette approche dans un environnement de test. Pour obtenir un exemple, consultez utcNow. Notez que la fonction utcNow peut uniquement être utilisée dans une expression pour la valeur par défaut d’un paramètre.

Valeur retournée

Chaîne contenant 13 caractères.

Exemples

L’exemple suivant renvoie les résultats à partir d’uniquestring :

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

URI

uri(baseUri, relativeUri)

Crée un URI absolu en combinant le baseUri et la chaîne relativeUri.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
baseUri Oui string La chaîne d’URI de base. Veillez à observer le comportement relatif à la gestion de la barre oblique (« / ») finale, tel qu’il est décrit après ce tableau.
relativeUri Oui string La chaîne d’URI relatif à ajouter à la chaîne d’URI de base.
  • Si baseUri se termine par une barre oblique de fin, le résultat est simplement baseUri suivi par relativeUri. Si relativeUri elle commence également par une barre oblique de début, la barre oblique de fin et la barre oblique de début sont combinées en une.

  • Si baseUri elle ne se termine pas par une barre oblique de fin, l’une des deux choses se produit.

    • S’il baseUri n’y a pas de barres obliques du tout (à part le « // » près de l’avant), le résultat est simplement baseUri suivi par relativeUri.

    • Si baseUri certaines barres obliques ne se terminent pas par une barre oblique, toutes les barres obliques suivantes sont supprimées baseUri et le résultat est baseUri suivi.relativeUri

Voici quelques exemples :

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

Pour plus d’informations, les paramètres et relativeUri les baseUri paramètres sont résolus comme spécifié dans RFC 3986, section 5.

Valeur retournée

Chaîne représentant l’URI absolu pour les valeurs de base et relative.

Exemples

L’exemple suivant montre comment utiliser les paramètres uri, uriComponent et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
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)

Encode un URI.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
stringToEncode Oui string Valeur à encoder.

Valeur retournée

Chaîne de la valeur encodée de l’URI.

Exemples

L’exemple suivant montre comment utiliser les paramètres uri, uriComponent et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
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)

Retourne une chaîne de la valeur encodée de l’URI.

Espace de noms : sys.

Paramètres

Paramètre Obligatoire Type Description
uriEncodedString Oui string Valeur encodée de l’URI à convertir en une chaîne.

Valeur retournée

Chaîne décodée de la valeur encodée de l’URI.

Exemples

L’exemple suivant montre comment utiliser les paramètres uri, uriComponent et 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 sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
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

Étapes suivantes