Funzioni stringa per Bicep

Questo articolo descrive le funzioni Bicep per l'uso delle stringhe.

base64

base64(inputString)

Restituisce la rappresentazione base64 della stringa di input.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
inputString string Il valore da restituire come rappresentazione base64.

Valore restituito

Stringa contenente la rappresentazione base64.

Esempi

L'esempio seguente mostra come usare la funzione 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

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

base64ToJson

base64ToJson(base64Value)

Converte una rappresentazione base64 in un oggetto JSON.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
base64Value string Rappresentazione base64 da convertire in un oggetto JSON.

Valore restituito

Oggetto JSON.

Esempi

L'esempio seguente usa la funzione base64ToJson per convertire un valore 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

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

base64ToString

base64ToString(base64Value)

Converte una rappresentazione base64 in una stringa.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
base64Value string Rappresentazione base64 da convertire in stringa.

Valore restituito

Stringa del valore base64 convertito.

Esempi

L'esempio seguente usa la funzione base64ToString per convertire un valore 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

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

concat

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

Combina più valori stringa e restituisce la stringa concatenata oppure combina più matrici e restituisce la matrice concatenata. Per migliorare la leggibilità, usare l'interpolazione di stringhe anziché la concat() funzione . Tuttavia, in alcuni casi, ad esempio la sostituzione di stringhe in stringhe a più righe, potrebbe essere necessario eseguire il fallback usando la concat() funzione o la replace() funzione .

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
arg1 Stringa o matrice Prima stringa o matrice per la concatenazione.
altri argomenti No Stringa o matrice Più stringhe o matrici in ordine sequenziale per la concatenazione.

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

Valore restituito

Stringa o matrice di valori concatenati.

Esempi

Nell'esempio seguente viene illustrato un confronto tra l'uso dell'interpolazione e l'uso della concat() funzione . I due output restituiscono lo stesso valore.

param prefix string = 'prefix'

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

Gli output dell'esempio precedente con il valore predefinito sono:

Nome Type Valore
concatOutput String prefixAnd5yj4yjf5mbg72
interpolationOutput String prefixAnd5yj4yjf5mbg72

L'interpolazione non è attualmente supportata nelle stringhe a più righe. Nell'esempio seguente viene illustrato un confronto tra l'uso dell'interpolazione e l'uso della concat() funzione .

var blocked = 'BLOCKED'

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
concatOutput String interpolation\nis BLOCKED
interpolationOutput String interpolation\nis ${blocked}

contains

contains(container, itemToFind)

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

Spazio dei nomi: sys.

Parametri

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

Valore restituito

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

Esempi

L'esempio seguente mostra come usare la funzione contains con tipi diversi:

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')

L'output dell'esempio precedente con i valori predefiniti è il seguente:

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

dataUri

dataUri(stringToConvert)

Converte un valore in un URI di dati.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToConvert string Valore da convertire in un URI di dati.

Valore restituito

Stringa formattata come URI di dati.

Esempi

L'esempio seguente converte un valore in un URI di dati e converte un URI di dati in una stringa:

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

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
dataUriOutput String data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hello, World!

dataUriToString

dataUriToString(dataUriToConvert)

Converte un valore formattato come URI di dati in una stringa.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
dataUriToConvert string Valore dell'URI di dati da convertire.

Valore restituito

Stringa contenente il valore convertito.

Esempi

L'esempio seguente converte un valore in un URI di dati e converte un URI di dati in una stringa:

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

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
dataUriOutput String data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hello, World!

empty

empty(itemToTest)

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

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
itemToTest matrice, oggetto o stringa Valore da controllare se è vuoto.

Valore restituito

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

Esempi

L'esempio seguente controlla se una matrice, un oggetto e una stringa sono vuoti.

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

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

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

endsWith

endsWith(stringToSearch, stringToFind)

Determina se una stringa termina con un valore. Il confronto non fa distinzione tra maiuscole e minuscole.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToSearch string Valore che contiene l'elemento da cercare.
stringToFind string Valore da trovare.

Valore restituito

True se l'ultimo carattere o i caratteri della stringa corrispondono al valore; in caso contrario, restituisce False.

Esempi

L'esempio seguente mostra come usare le funzioni startsWith ed 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')

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
startsTrue Bool Vero
startsCapTrue Bool Vero
startsFalse Bool Falso
endsTrue Bool Vero
endsCapTrue Bool Vero
endsFalse Bool Falso

primo

first(arg1)

Restituisce il primo carattere della stringa o il primo elemento della matrice. Se viene specificata una stringa vuota, la funzione restituisce una stringa vuota. Nel caso di una matrice vuota, la funzione restituisce null.

Spazio dei nomi: sys.

Parametri

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

Valore restituito

Stringa del primo carattere o il tipo del primo elemento in una matrice (stringa, numero intero, matrice o oggetto).

Esempi

L'esempio seguente mostra come usare la prima funzione con una matrice e una stringa.

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

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
arrayOutput String Uno
stringOutput String O

format

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

Crea una stringa formattata dai valori di input.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
Formatstring string Stringa di formato composito.
arg1 stringa, integer o booleano Valore da includere nella stringa formattata.
argomenti aggiuntivi No stringa, integer o booleano Valori aggiuntivi da includere nella stringa formattata.

Osservazioni:

Usare questa funzione per formattare una stringa nel file Bicep. Usa le stesse opzioni di formattazione del metodo System.String.Format in .NET.

Esempi

Nell'esempio seguente viene illustrato come usare la funzione 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
formatTest String Hello, User. Formatted number: 8,175,133
formatObject String objectToFormat: {'prop':'value'}

guid

guid(baseString, ...)

Crea un valore con il formato di un identificatore univoco globale in base ai valori specificati come parametri.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
baseString string Il valore usato nella funzione hash per creare il GUID.
parametri aggiuntivi in base alle esigenze No string È possibile aggiungere tutte le stringhe necessarie per creare il valore che specifica il livello di univocità.

Osservazioni:

Questa funzione è utile quando è necessario creare un valore con il formato di un identificatore univoco globale. È possibile specificare i valori dei parametri che limitano l'ambito di univocità per il risultato. È possibile specificare se il nome è univoco nella sottoscrizione, nel gruppo di risorse o nella distribuzione.

Il valore restituito non è una stringa casuale, ma piuttosto il risultato di una funzione hash sui parametri. Il valore restituito è lungo 36 caratteri. Non è univoco a livello globale. Per creare un nuovo GUID non basato sul valore hash dei parametri, usare la funzione newGuid .

Nota

L'ordine dei parametri influisce sul valore restituito. Ad esempio:

guid('hello', 'world') e guid('world', 'hello')

non restituire lo stesso valore.

Gli esempi seguenti illustrano come usare guid per creare un valore univoco per livelli di uso comune.

Con ambito univoco nella sottoscrizione

guid(subscription().subscriptionId)

Con ambito univoco nel gruppo di risorse

guid(resourceGroup().id)

Con ambito univoco nella distribuzione per un gruppo di risorse

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

La guid funzione implementa l'algoritmo da RFC 4122 §4.3. L'origine originale è disponibile in GuidUtility con alcune modifiche.

Valore restituito

Stringa contenente 36 caratteri nel formato di un identificatore univoco globale.

Esempi

L'esempio seguente restituisce i risultati da 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)

Restituisce la prima posizione di un valore all'interno di una stringa. Il confronto non fa distinzione tra maiuscole e minuscole.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToSearch string Valore che contiene l'elemento da cercare.
stringToFind string Valore da trovare.

Valore restituito

Numero intero che rappresenta la posizione dell'elemento da trovare. Il valore è in base zero. Se l'elemento non viene trovato, viene restituito -1.

Esempi

L'esempio seguente mostra come usare le funzioni indexOf e 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')

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

join

join(inputArray, delimiter)

Unisce una matrice di stringhe in una singola stringa, separata usando un delimitatore.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
inputArray Matrice di stringhe. Matrice di stringhe da unire.
delimiter Il delimitatore da usare per dividere la stringa.

Valore restituito

Stringa .

Esempi

L'esempio seguente unisce la matrice di stringhe di input in stringhe delimitate da una virgola o da un punto e virgola.

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

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
firstOutput String "uno,due,tre"
secondOutput String "uno; Due; tre"

Questa funzione richiede l'interfaccia della riga di comando di Bicep versione 0.8.X o successiva.

JSON

json(arg1)

Converte una stringa JSON valida in un tipo di dati JSON. Per altre informazioni, vedere Funzione json.

Spazio dei nomi: sys.

ultimo

last(arg1)

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

Spazio dei nomi: sys.

Parametri

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

Valore restituito

Stringa dell'ultimo carattere o il tipo dell'ultimo elemento in una matrice (stringa, numero intero, matrice o oggetto).

Esempi

L'esempio seguente mostra come usare l'ultima funzione con una matrice e una stringa.

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

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
arrayOutput String tre
stringOutput String e

lastIndexOf

lastIndexOf(stringToSearch, stringToFind)

Restituisce l'ultima posizione di un valore all'interno di una stringa. Il confronto non fa distinzione tra maiuscole e minuscole.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToSearch string Valore che contiene l'elemento da cercare.
stringToFind string Valore da trovare.

Valore restituito

Numero intero che rappresenta l'ultima posizione dell'elemento da trovare. Il valore è in base zero. Se l'elemento non viene trovato, viene restituito -1.

Esempi

L'esempio seguente illustra come usare le indexOf funzioni e 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')

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

length

length(string)

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

Spazio dei nomi: sys.

Parametri

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

Valore restituito

Numero intero

Esempi

L'esempio seguente mostra come usare la funzione length con una matrice e una stringa:

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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

Restituisce un valore nel formato di un identificatore univoco globale. Questa funzione può essere usata solo nel valore predefinito per un parametro.

Spazio dei nomi: sys.

Osservazioni:

È possibile usare questa funzione solo all'interno di un'espressione per il valore predefinito di un parametro. L'uso di questa funzione in qualsiasi altra posizione in un file Bicep restituisce un errore. La funzione non è consentita in altre parti del file Bicep perché restituisce un valore diverso ogni volta che viene chiamato. La distribuzione dello stesso file Bicep con gli stessi parametri non produce in modo affidabile gli stessi risultati.

La funzione newGuid è diversa dalla funzione GUID perché non accetta parametri. Quando si chiama guid con gli stessi parametri, restituisce lo stesso identificatore ogni volta. Usare guid quando è necessario generare in modo affidabile lo stesso GUID per un ambiente specifico. Usare newGuid quando è necessario un identificatore diverso ogni volta, ad esempio la distribuzione di risorse in un ambiente di test.

La funzione newGuid usa la struttura Guid in .NET Framework per generare l'identificatore univoco globale.

Se si usa l'opzione per ridistribuire una distribuzione precedente e la distribuzione precedente include un parametro che usa newGuid, il parametro non viene rivalutato. Il valore del parametro della distribuzione precedente viene invece riutilizzato automaticamente nella distribuzione di rollback.

In un ambiente di test potrebbe essere necessario distribuire ripetutamente risorse che si trovano solo per un breve periodo di tempo. Anziché costruire nomi univoci, è possibile usare newGuid con uniqueString per creare nomi univoci.

Prestare attenzione alla ridistribuzione di un file Bicep che si basa sulla funzione newGuid per un valore predefinito. Quando si ridistribuisce e non si specifica un valore per il parametro , la funzione viene rivalutata. Se si vuole aggiornare una risorsa esistente anziché crearne una nuova, passare il valore del parametro dalla distribuzione precedente.

Valore restituito

Stringa contenente 36 caratteri nel formato di un identificatore univoco globale.

Esempi

Nell'esempio seguente viene illustrato un parametro con un nuovo identificatore.

param guidValue string = newGuid()

output guidOutput string = guidValue

L'output dell'esempio precedente varia per ogni distribuzione, ma sarà simile al seguente:

Nome Type Valore
guidOutput string b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

Nell'esempio seguente viene usata la funzione newGuid per creare un nome univoco per un account di archiviazione. Questo file Bicep potrebbe funzionare per l'ambiente di test in cui l'account di archiviazione esiste per un breve periodo di tempo e non viene ridistribuito.

param guidValue string = newGuid()

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

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

output nameOutput string = storageName

L'output dell'esempio precedente varia per ogni distribuzione, ma sarà simile al seguente:

Nome Type Valore
nameOutput string storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

Restituisce una stringa allineata a destra mediante l'aggiunta di caratteri a sinistra, fino a raggiungere la lunghezza totale specificata.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
valueToPad stringa o numero intero Il valore per eseguire l'allineamento a destra.
totalLength int Numero totale di caratteri della stringa restituita.
paddingCharacter No Carattere singolo Il carattere da utilizzare per la spaziatura interna a sinistra, fino a raggiungere la lunghezza totale. Il valore predefinito è uno spazio.

Se la stringa originale è più lunga rispetto al numero di caratteri di riempimento, non vengono aggiunti caratteri.

Valore restituito

Stringa contenente come minimo il numero di caratteri specificati.

Esempi

L'esempio seguente mostra come il valore del parametro fornito dall'utente viene completato aggiungendo il carattere zero finché la stringa non raggiunge il numero totale di caratteri.

param testString string = '123'

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
stringOutput String 0000000123

replace

replace(originalString, oldString, newString)

Restituisce una nuova stringa con tutte le istanze di una stringa sostituita con un'altra stringa.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
originalString string Valore che contiene tutte le istanze di una stringa sostituita con un'altra stringa.
oldString string Stringa da rimuovere dalla stringa originale.
newString string Stringa da aggiungere al posto della stringa rimossa.

Valore restituito

Stringa con i caratteri sostituiti.

Esempi

L'esempio seguente illustra come rimuovere tutti i trattini dalla stringa fornita dall'utente e come sostituire parte della stringa con un'altra stringa.

param testString string = '123-123-1234'

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
firstOutput String 1231231234
secondOutput String 123-123-xxxx

skip

skip(originalValue, numberToSkip)

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

Spazio dei nomi: sys.

Parametri

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

Valore restituito

Stringa o matrice.

Esempi

L'esempio seguente ignora il numero di elementi specificato nella matrice e il numero di caratteri specificato in una stringa.

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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
arrayOutput Matrice ["three"]
stringOutput String two three

split

split(inputString, delimiter)

Restituisce una matrice di stringhe che contiene le sottostringhe della stringa di input delimitate dai delimitatori specificati.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
inputString string Stringa da dividere.
delimiter Stringa o matrice di stringhe Il delimitatore da usare per dividere la stringa.

Valore restituito

Matrice di stringhe.

Esempi

L'esempio seguente mostra come suddividere la stringa di input usando una virgola, oppure una virgola o un punto e virgola.

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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
firstOutput Matrice ["one", "two", "three"]
secondOutput Matrice ["one", "two", "three"]

startsWith

startsWith(stringToSearch, stringToFind)

Determina se una stringa inizia con un valore. Il confronto non fa distinzione tra maiuscole e minuscole.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToSearch string Valore che contiene l'elemento da cercare.
stringToFind string Valore da trovare.

Valore restituito

True se il primo carattere o i caratteri della stringa corrispondono al valore; in caso contrario, restituisce False.

Esempi

L'esempio seguente mostra come usare le funzioni startsWith ed 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')

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
startsTrue Bool Vero
startsCapTrue Bool Vero
startsFalse Bool Falso
endsTrue Bool Vero
endsCapTrue Bool Vero
endsFalse Bool Falso

string

string(valueToConvert)

Converte il valore specificato in una stringa. Le stringhe vengono restituite così come sono. Gli altri tipi vengono convertiti nella rappresentazione JSON equivalente. Se è necessario convertire una stringa in JSON, ad esempio virgolette/escape, è possibile usare substring(string([value]), 1, length(string([value]) - 2).

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
valueToConvert Qualsiasi Valore da convertire in stringa. È possibile convertire qualsiasi tipo di valore, inclusi gli oggetti e le matrici.

Valore restituito

Stringa del valore convertito.

Esempi

L'esempio seguente mostra come convertire diversi tipi di valori di stringa:

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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
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)

Restituisce una sottostringa che inizia nella posizione del carattere specificato e contiene il numero di caratteri specificato.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToParse string La stringa originale da cui estrarre la sottostringa.
startIndex No int La posizione del carattere iniziale in base zero della sottostringa.
length No int Il numero di caratteri della sottostringa. Deve fare riferimento a una posizione nella stringa. Deve essere uguale a o maggiore di zero. Se omesso, verrà restituito il resto della stringa dalla posizione iniziale.

Valore restituito

La sottostringa. Oppure una stringa vuota se la lunghezza è pari a zero.

Osservazioni:

La funzione ha esito negativo quando la sottostringa si estende oltre la fine della stringa o quando la lunghezza è minore di zero. L'esempio seguente ha esito negativo e visualizza l'errore "I parametri index e length devono fare riferimento a una posizione all'interno della stringa. Parametro index: '0', parametro length: '11', lunghezza del parametro string: '10'.".

param inputString string = '1234567890'

var prefix = substring(inputString, 0, 11)

Esempi

L'esempio seguente estrae una sottostringa da un parametro.

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
substringOutput String Due

take

take(originalValue, numberToTake)

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

Spazio dei nomi: sys.

Parametri

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

Valore restituito

Stringa o matrice.

Esempi

L'esempio seguente prende il numero specificato di elementi dalla matrice e di caratteri dalla stringa.

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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
arrayOutput Matrice ["one", "two"]
stringOutput String in

toLower

toLower(stringToChange)

Converte la stringa specificata in caratteri minuscoli.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToChange string Il valore da convertire in lettere minuscole.

Valore restituito

La stringa convertita in lettere minuscole.

Esempi

L'esempio seguente converte il valore del parametro in lettere maiuscole e minuscole.

param testString string = 'One Two Three'

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
toLowerOutput String one two three
toUpperOutput String ONE TWO THREE

toUpper

toUpper(stringToChange)

Converte la stringa specificata in lettere maiuscole.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToChange string Il valore da convertire in lettere maiuscole.

Valore restituito

La stringa convertita in lettere maiuscole.

Esempi

L'esempio seguente converte il valore del parametro in lettere maiuscole e minuscole.

param testString string = 'One Two Three'

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

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
toLowerOutput String one two three
toUpperOutput String ONE TWO THREE

Trim

trim(stringToTrim)

Rimuove tutti i caratteri di spazi vuoti iniziali e finali dalla stringa specificata.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToTrim string Il valore da tagliare.

Valore restituito

La stringa senza spazi vuoti iniziali e finali.

Esempi

L'esempio seguente elimina i caratteri spazi vuoti dal parametro.

param testString string = '    one two three   '

output return string = trim(testString)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
return String one two three

uniqueString

uniqueString(baseString, ...)

Crea una stringa hash deterministica in base ai valori forniti come parametri.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
baseString string Il valore usato nella funzione hash per creare una stringa univoca.
parametri aggiuntivi in base alle esigenze No string È possibile aggiungere tutte le stringhe necessarie per creare il valore che specifica il livello di univocità.

Osservazioni:

Questa funzione è utile quando è necessario creare un nome univoco per una risorsa. È possibile specificare i valori dei parametri che limitano l'ambito di univocità per il risultato. È possibile specificare se il nome è univoco nella sottoscrizione, nel gruppo di risorse o nella distribuzione.

Il valore restituito non è una stringa casuale, ma piuttosto il risultato di una funzione hash. Il valore restituito ha una lunghezza di 13 caratteri. Non è univoco a livello globale. È possibile combinare il valore con un prefisso dalla convenzione di denominazione scelta per creare un nome significativo. L'esempio seguente illustra il formato del valore restituito. Il valore effettivo varia in base ai parametri forniti.

tcvhiyu5h2o5o

Gli esempi seguenti mostrano come usare uniqueString per creare un valore univoco per livelli di uso comune.

Con ambito univoco nella sottoscrizione

uniqueString(subscription().subscriptionId)

Con ambito univoco nel gruppo di risorse

uniqueString(resourceGroup().id)

Con ambito univoco nella distribuzione per un gruppo di risorse

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

Nell'esempio seguente viene illustrato come creare un nome univoco per un account di archiviazione in base al gruppo di risorse. All'interno del gruppo di risorse, il nome non è univoco se costruito allo stesso modo.

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

Se è necessario creare un nuovo nome univoco ogni volta che si distribuisce un file Bicep e non si intende aggiornare la risorsa, è possibile usare la funzione utcNow con uniqueString. È possibile usare questo approccio in un ambiente di test. Per un esempio, vedere utcNow. Si noti che la funzione utcNow può essere usata solo all'interno di un'espressione per il valore predefinito di un parametro.

Valore restituito

Stringa contenente 13 caratteri.

Esempi

Nell'esempio seguente restituisce risultati da uniqueString:

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

uri

uri(baseUri, relativeUri)

Crea un URI assoluto combinando la baseUri e la stringa relativeUri.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
baseUri string La stringa URI di base. Prestare attenzione a osservare il comportamento relativo alla gestione della barra finale ('/'), come descritto di seguito in questa tabella.
relativeUri string La stringa URI relativa da aggiungere alla stringa di URI di base.
  • Se baseUri termina in una barra finale, il risultato è semplicemente baseUri seguito da relativeUri.

  • Se baseUri non termina con una barra finale, si verifica una delle due cose.

    • Se baseUri non ha alcuna barra (a parte "//" vicino alla parte anteriore), il risultato è semplicemente baseUri seguito da relativeUri.

    • Se baseUri ha alcune barre, ma non termina con una barra, tutti gli elementi dall'ultima barra in poi vengono rimossi da baseUri e il risultato è baseUri seguito da relativeUri.

Di seguito sono riportati alcuni esempi.

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/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

Per informazioni dettagliate, i parametri baseUri e relativeUri vengono risolti come specificato nella sezione 3986 RFC 3986.

Valore restituito

Stringa che rappresenta l'URI assoluto dei valori di base e relativi.

Esempi

L'esempio seguente mostra come usare uri, uriComponent e 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
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 URI.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
stringToEncode string Valore da codificare.

Valore restituito

Stringa del valore URI codificato.

Esempi

L'esempio seguente mostra come usare uri, uriComponent e 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
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)

Restituisce una stringa di un valore URI codificato.

Spazio dei nomi: sys.

Parametri

Parametro Obbligatorio Type Descrizione
uriEncodedString string Valore URI codificato da convertire in stringa.

Valore restituito

Stringa decodificata del valore URI codificato.

Esempi

L'esempio seguente mostra come usare uri, uriComponent e 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)

L'output dell'esempio precedente con i valori predefiniti è il seguente:

Nome Type Valore
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

Passaggi successivi