Řetězcové funkce pro Bicep
Tento článek popisuje funkce Bicep pro práci s řetězci.
base64
base64(inputString)
Vrátí reprezentaci vstupního řetězce base64.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
inputString | Ano | string | Hodnota, která se má vrátit jako reprezentace base64. |
Vrácená hodnota
Řetězec obsahující reprezentaci base64.
Příklady
Následující příklad ukazuje, jak používat funkci 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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
base64Output | String | b25lLCB0d28sIHRocmVl |
toStringOutput | String | Jedna dva tři |
toJsonOutput | Objekt | {"one": "a", "two": "b"} |
base64ToJson
base64ToJson(base64Value)
Převede reprezentaci base64 na objekt JSON.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
base64Value | Ano | string | Reprezentace base64 pro převod na objekt JSON. |
Vrácená hodnota
Objekt JSON.
Příklady
Následující příklad používá funkci base64ToJson k převodu hodnoty 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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
base64Output | String | b25lLCB0d28sIHRocmVl |
toStringOutput | String | Jedna dva tři |
toJsonOutput | Objekt | {"one": "a", "two": "b"} |
base64ToString
base64ToString(base64Value)
Převede reprezentaci base64 na řetězec.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
base64Value | Ano | string | Reprezentace base64, která se má převést na řetězec. |
Vrácená hodnota
Řetězec převedené hodnoty base64.
Příklady
Následující příklad používá funkci base64ToString k převodu hodnoty 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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
base64Output | String | b25lLCB0d28sIHRocmVl |
toStringOutput | String | Jedna dva tři |
toJsonOutput | Objekt | {"one": "a", "two": "b"} |
concat
concat(arg1, arg2, arg3, ...)
Kombinuje více řetězcových hodnot a vrací zřetězený řetězec nebo kombinuje více polí a vrací zřetězené pole. Pokud chcete zlepšit čitelnost, použijte místo funkce interpolaci concat()
řetězců. V některých případech, například nahrazení řetězce ve víceřádkových řetězcích, ale možná budete muset vrátit zpět použití concat()
funkce nebo replace()
funkce.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | řetězec nebo pole | První řetězec nebo pole pro zřetězení |
další argumenty | No | řetězec nebo pole | Více řetězců nebo polí v sekvenčním pořadí pro zřetězení |
Tato funkce může přijmout libovolný počet argumentů a pro parametry může přijímat řetězce nebo pole. Pro parametry ale nemůžete zadat pole i řetězce. Řetězce jsou zřetězeny pouze s jinými řetězci.
Vrácená hodnota
Řetězec nebo pole zřetězených hodnot.
Příklady
Následující příklad ukazuje porovnání mezi používáním interpolace a použitím concat()
funkce. Dva výstupy vrátí stejnou hodnotu.
param prefix string = 'prefix'
output concatOutput string = concat(prefix, 'And', uniqueString(resourceGroup().id))
output interpolationOutput string = '${prefix}And${uniqueString(resourceGroup().id)}'
Výstupy z předchozího příkladu s výchozí hodnotou jsou:
Name | Typ | Hodnota |
---|---|---|
concatOutput | String | prefixAnd5yj4yjf5mbg72 |
interpolationOutput | String | prefixAnd5yj4yjf5mbg72 |
Interpolace se v současné době nepodporuje ve víceřádkových řetězcích. Následující příklad ukazuje porovnání mezi používáním interpolace a použitím concat()
funkce.
var blocked = 'BLOCKED'
output concatOutput string = concat('''interpolation
is ''', blocked)
output interpolationOutput string = '''interpolation
is ${blocked}'''
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
concatOutput | String | interpolace\nis BLOCKED |
interpolationOutput | String | interpolace\nis ${blocked} |
obsahuje
contains(container, itemToFind)
Kontroluje, zda pole obsahuje hodnotu, objekt obsahuje klíč nebo řetězec obsahuje podřetězce. Porovnání řetězců se rozlišují malá a velká písmena. Při testování, pokud objekt obsahuje klíč, je však porovnání nerozlišující malá a velká písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
kontejner | Ano | pole, objekt nebo řetězec | Hodnota, která obsahuje hodnotu, kterou chcete najít. |
itemToFind | Ano | řetězec nebo int | Hodnota, kterou chcete najít. |
Vrácená hodnota
True
je-li položka nalezena; v opačném případě . False
Příklady
Následující příklad ukazuje, jak používat obsahuje různé typy:
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')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
stringTrue | Bool | True |
stringFalse | Bool | False |
objectTrue | Bool | True |
objectFalse | Bool | False |
arrayTrue | Bool | True |
arrayFalse | Bool | False |
identifikátor dataURI
dataUri(stringToConvert)
Převede hodnotu na identifikátor URI dat.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToConvert | Ano | string | Hodnota, která se má převést na identifikátor URI dat. |
Vrácená hodnota
Řetězec formátovaný jako identifikátor URI dat.
Příklady
Následující příklad převede hodnotu na identifikátor URI dat a převede identifikátor URI dat na řetězec:
param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='
output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
dataUriOutput | String | data:text/plain; charset=utf8; base64,SGVsbG8= |
toStringOutput | String | Hello, World! |
dataUriToString
dataUriToString(dataUriToConvert)
Převede hodnotu formátovanou datovým identifikátorem URI na řetězec.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
dataUriToConvert | Ano | string | Hodnota identifikátoru URI dat, která se má převést. |
Vrácená hodnota
Řetězec obsahující převedenou hodnotu.
Příklady
Následující příklad převede hodnotu na identifikátor URI dat a převede identifikátor URI dat na řetězec:
param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='
output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
dataUriOutput | String | data:text/plain; charset=utf8; base64,SGVsbG8= |
toStringOutput | String | Hello, World! |
empty
empty(itemToTest)
Určuje, zda je pole, objekt nebo řetězec prázdné nebo null.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
itemToTest | Ano | pole, objekt nebo řetězec | Hodnota, která se má zkontrolovat, jestli je prázdná nebo null. |
Vrácená hodnota
Vrátí hodnotu True , pokud je hodnota prázdná nebo null; jinak False.
Příklady
Následující příklad zkontroluje, zda pole, objekt a řetězec jsou prázdné.
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
arrayEmpty | Bool | True |
objectEmpty | Bool | True |
stringEmpty | Bool | True |
stringNull | Bool | True |
endsWith
endsWith(stringToSearch, stringToFind)
Určuje, zda řetězec končí hodnotou. Porovnání nerozlišuje malá a velká písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToSearch | Ano | string | Hodnota obsahující položku, kterou chcete najít. |
stringToFind | Ano | string | Hodnota, kterou chcete najít. |
Vrácená hodnota
True
pokud poslední znak nebo znaky řetězce odpovídají hodnotě; v opačném případě . False
Příklady
Následující příklad ukazuje, jak používat funkce startsWith a 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')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
startsTrue | Bool | True |
startsCapTrue | Bool | True |
startsFalse | Bool | False |
endTrue | Bool | True |
endsCapTrue | Bool | True |
endFalse | Bool | False |
1\.
first(arg1)
Vrátí první znak řetězce nebo první prvek pole. Pokud je zadaný prázdný řetězec, výsledkem funkce bude prázdný řetězec. V případě prázdného pole vrátí null
funkce .
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | pole nebo řetězec | Hodnota pro načtení prvního prvku nebo znaku. |
Vrácená hodnota
Řetězec prvního znaku nebo typ (řetězec, int, pole nebo objekt) prvního prvku v poli.
Příklady
Následující příklad ukazuje, jak použít první funkci s polem a řetězcem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
arrayOutput | String | jeden |
stringOutput | String | O |
format
format(formatString, arg1, arg2, ...)
Vytvoří formátovaný řetězec ze vstupních hodnot.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
formatString | Ano | string | Složený formátovací řetězec. |
arg1 | Ano | řetězec, celé číslo nebo logická hodnota | Hodnota, která se má zahrnout do formátovaného řetězce. |
další argumenty | No | řetězec, celé číslo nebo logická hodnota | Další hodnoty, které se mají zahrnout do formátovaného řetězce |
Poznámky
Pomocí této funkce můžete formátovat řetězec v souboru Bicep. Používá stejné možnosti formátování jako metoda System.String.Format v .NET.
Příklady
Následující příklad ukazuje, jak používat funkci formátu.
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
formatTest | String | Hello, User. Formatted number: 8,175,133 |
formatObject | String | objectToFormat: {'prop':'value'} |
guid
guid(baseString, ...)
Vytvoří hodnotu ve formátu globálně jedinečného identifikátoru na základě hodnot zadaných jako parametry.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
baseString | Ano | string | Hodnota použitá ve funkci hash k vytvoření identifikátoru GUID. |
další parametry podle potřeby | No | string | Můžete přidat tolik řetězců, kolik potřebujete k vytvoření hodnoty, která určuje úroveň jedinečnosti. |
Poznámky
Tato funkce je užitečná, když potřebujete vytvořit hodnotu ve formátu globálně jedinečného identifikátoru. Zadáte hodnoty parametrů, které omezují rozsah jedinečnosti výsledku. Můžete určit, jestli je název jedinečný až do předplatného, skupiny prostředků nebo nasazení.
Vrácená hodnota není náhodný řetězec, ale spíše výsledek funkce hash u parametrů. Vrácená hodnota je 36 znaků dlouhá. Není globálně jedinečný. Pokud chcete vytvořit nový identifikátor GUID, který není založený na této hodnotě hash parametrů, použijte funkci newGuid .
Poznámka:
Pořadí parametrů ovlivňuje vrácenou hodnotu. Příklad:
guid('hello', 'world')
a guid('world', 'hello')
nevrací stejnou hodnotu.
Následující příklady ukazují, jak pomocí identifikátoru GUID vytvořit jedinečnou hodnotu pro běžně používané úrovně.
Jedinečný obor předplatného
guid(subscription().subscriptionId)
Jedinečný obor pro skupinu prostředků
guid(resourceGroup().id)
Jedinečný obor nasazení pro skupinu prostředků
guid(resourceGroup().id, deployment().name)
Funkce guid
implementuje algoritmus z RFC 4122 §4.3. Původní zdroj lze najít v GuidUtility s některými úpravami.
Vrácená hodnota
Řetězec obsahující 36 znaků ve formátu globálně jedinečného identifikátoru.
Příklady
Následující příklad vrátí výsledky z 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)
Vrátí první pozici hodnoty v řetězci. Porovnání nerozlišuje malá a velká písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToSearch | Ano | string | Hodnota obsahující položku, kterou chcete najít. |
stringToFind | Ano | string | Hodnota, kterou chcete najít. |
Vrácená hodnota
Celé číslo, které představuje pozici položky, která se má najít. Hodnota je založená na nule. Pokud se položka nenajde, vrátí se hodnota -1.
Příklady
Následující příklad ukazuje, jak používat funkce indexOf a 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')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
firstT | Int | 0 |
lastT | Int | 3 |
firstString | Int | 2 |
lastString | Int | 0 |
notFound | Int | -1 |
join
join(inputArray, delimiter)
Spojí pole řetězců do jednoho řetězce odděleného oddělovačem.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
inputArray | Ano | Pole řetězce. | Pole řetězců, které se mají spojit. |
oddělovač | Ano | Oddělovač, který se má použít k rozdělení řetězce. |
Vrácená hodnota
Řetězec.
Příklady
Následující příklad spojí vstupní pole řetězců s řetězci oddělenými čárkami nebo středníkem.
var arrayString = [
'one'
'two'
'three'
]
output firstOutput string = join(arrayString, ',')
output secondOutput string = join(arrayString, ';')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
firstOutput | String | "jedna,dvě,tři" |
secondOutput | String | "jeden; Dva; tři" |
Tato funkce vyžaduje rozhraní příkazového řádku Bicep verze 0.8.X nebo vyšší.
json
json(arg1)
Převede platný řetězec JSON na datový typ JSON. Další informace najdete v tématu funkce JSON.
Obor názvů: sys.
Poslední
last(arg1)
Vrátí poslední znak řetězce nebo poslední prvek pole.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | pole nebo řetězec | Hodnota pro načtení posledního prvku nebo znaku. |
Vrácená hodnota
Řetězec posledního znaku nebo typ (řetězec, int, pole nebo objekt) posledního prvku v poli.
Příklady
Následující příklad ukazuje, jak použít poslední funkci s polem a řetězcem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two Three')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
arrayOutput | String | tři |
stringOutput | String | e |
lastIndexOf
lastIndexOf(stringToSearch, stringToFind)
Vrátí poslední pozici hodnoty v řetězci. Porovnání nerozlišuje malá a velká písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToSearch | Ano | string | Hodnota obsahující položku, kterou chcete najít. |
stringToFind | Ano | string | Hodnota, kterou chcete najít. |
Vrácená hodnota
Celé číslo, které představuje poslední pozici položky, která se má najít. Hodnota je založená na nule. Pokud se položka nenajde, vrátí se hodnota -1.
Příklady
Následující příklad ukazuje, jak používat funkce indexOf
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')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
firstT | Int | 0 |
lastT | Int | 3 |
firstString | Int | 2 |
lastString | Int | 0 |
notFound | Int | -1 |
length
length(string)
Vrátí počet znaků v řetězci, prvky v poli nebo vlastnosti kořenové úrovně v objektu.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
arg1 | Ano | pole, řetězec nebo objekt | Pole, které se má použít pro získání počtu prvků, řetězec, který se má použít pro získání počtu znaků, nebo objekt, který se má použít pro získání počtu vlastností kořenové úrovně. |
Vrácená hodnota
Int.
Příklady
Následující příklad ukazuje, jak použít délku s polem a řetězcem:
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 4 |
newGuid
newGuid()
Vrátí hodnotu ve formátu globálně jedinečného identifikátoru. Tuto funkci lze použít pouze ve výchozí hodnotě parametru.
Obor názvů: sys.
Poznámky
Tuto funkci můžete použít pouze ve výrazu pro výchozí hodnotu parametru. Použití této funkce kdekoli jinde v souboru Bicep vrátí chybu. Funkce není povolená v jiných částech souboru Bicep, protože pokaždé, když se volá, vrátí jinou hodnotu. Nasazení stejného souboru Bicep se stejnými parametry by spolehlivě nezískuilo stejné výsledky.
Nová funkceGuid se liší od funkce GUID , protože nepřebírají žádné parametry. Když zavoláte identifikátor GUID se stejnými parametry, vrátí pokaždé stejný identifikátor. Pokud potřebujete spolehlivě vygenerovat stejný identifikátor GUID pro konkrétní prostředí, použijte identifikátor GUID. NewGuid použijte, když potřebujete pokaždé jiný identifikátor, například nasazení prostředků do testovacího prostředí.
Nová funkceGuid používá strukturu GUID v rozhraní .NET Framework k vygenerování globálně jedinečného identifikátoru.
Pokud použijete možnost opětovného nasazení dříve úspěšného nasazení a dřívější nasazení obsahuje parametr, který používá newGuid, parametr se znovu nevyhodnotuje. Místo toho se hodnota parametru z předchozího nasazení automaticky znovu použije v nasazení vrácení zpět.
V testovacím prostředí možná budete muset opakovaně nasazovat prostředky, které žijí jen na krátkou dobu. Místo vytváření jedinečných názvů můžete k vytvoření jedinečných názvů použít newGuid s uniqueString .
Při opětovném nasazení souboru Bicep, který pro výchozí hodnotu spoléhá na funkci newGuid, buďte opatrní. Když znovu nasadíte parametr a nezadáte hodnotu parametru, funkce se znovu zhodnocuje. Pokud chcete místo vytvoření nového prostředku aktualizovat existující prostředek, předejte hodnotu parametru z předchozího nasazení.
Vrácená hodnota
Řetězec obsahující 36 znaků ve formátu globálně jedinečného identifikátoru.
Příklady
Následující příklad ukazuje parametr s novým identifikátorem.
param guidValue string = newGuid()
output guidOutput string = guidValue
Výstup z předchozího příkladu se pro každé nasazení liší, ale bude vypadat nějak takto:
Name | Typ | Hodnota |
---|---|---|
GuidOutput | string | b76a51fc-bd72-4a77-b9a2-3c29e7d2e551 |
Následující příklad používá funkci newGuid k vytvoření jedinečného názvu pro účet úložiště. Tento soubor Bicep může fungovat pro testovací prostředí, ve kterém existuje účet úložiště na krátkou dobu a není znovu nasazený.
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
Výstup z předchozího příkladu se pro každé nasazení liší, ale bude vypadat nějak takto:
Name | Typ | Hodnota |
---|---|---|
nameOutput | string | storagenziwvyru7uxie |
padLeft
padLeft(valueToPad, totalLength, paddingCharacter)
Vrátí řetězec zarovnaný doprava přidáním znaků doleva, dokud nedosáhne celkové zadané délky.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
valueToPad | Ano | řetězec nebo int | Hodnota, která se má zarovnat doprava. |
totalLength | Ano | int | Celkový počet znaků ve vráceném řetězci. |
paddingCharacter | No | jeden znak | Znak, který se má použít pro odsazení doleva, dokud nedosáhnete celkové délky. Výchozí hodnota je mezera. |
Pokud je původní řetězec delší než počet znaků na panel, nepřidají se žádné znaky.
Vrácená hodnota
Řetězec s alespoň počtem zadaných znaků.
Příklady
Následující příklad ukazuje, jak hodnotu parametru poskytovanou uživatelem přidat nulu, dokud nedosáhne celkového počtu znaků.
param testString string = '123'
output stringOutput string = padLeft(testString, 10, '0')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
stringOutput | String | 0000000123 |
replace
replace(originalString, oldString, newString)
Vrátí nový řetězec se všemi instancemi jednoho řetězce nahrazeným jiným řetězcem.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
originalString | Ano | string | Hodnota, která má všechny instance jednoho řetězce nahrazen jiným řetězcem. |
oldString | Ano | string | Řetězec, který se má odebrat z původního řetězce. |
newString | Ano | string | Řetězec, který se má přidat místo odebraného řetězce. |
Vrácená hodnota
Řetězec s nahrazenými znaky.
Příklady
Následující příklad ukazuje, jak odebrat všechny pomlčky z uživatelem poskytnutého řetězce a jak nahradit část řetězce jiným řetězcem.
param testString string = '123-123-1234'
output firstOutput string = replace(testString, '-', '')
output secondOutput string = replace(testString, '1234', 'xxxx')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
firstOutput | String | 1231231234 |
secondOutput | String | 123-123-xxxx |
skip
skip(originalValue, numberToSkip)
Vrátí řetězec se všemi znaky za zadaným počtem znaků nebo pole se všemi prvky za zadaným počtem prvků.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
originalValue | Ano | pole nebo řetězec | Pole nebo řetězec, které se mají použít pro přeskočení. |
numberToSkip | Ano | int | Počet prvků nebo znaků, které chcete přeskočit. Pokud je tato hodnota 0 nebo menší, vrátí se všechny prvky nebo znaky v hodnotě. Pokud je větší než délka pole nebo řetězce, vrátí se prázdné pole nebo řetězec. |
Vrácená hodnota
Pole nebo řetězec.
Příklady
Následující příklad přeskočí zadaný počet prvků v poli a zadaný počet znaků v řetězci.
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
arrayOutput | Pole | ["tři"] |
stringOutput | String | dva tři |
split
split(inputString, delimiter)
Vrátí pole řetězců, které obsahují podřetězce vstupního řetězce, které jsou oddělené zadanými oddělovači.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
inputString | Ano | string | Řetězec, který chcete rozdělit. |
oddělovač | Ano | řetězec nebo pole řetězců | Oddělovač, který se má použít k rozdělení řetězce. |
Vrácená hodnota
Pole řetězců.
Příklady
Následující příklad rozdělí vstupní řetězec čárkou a buď čárkou, nebo středníkem.
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
firstOutput | Pole | ["one", "two", "three"] |
secondOutput | Pole | ["one", "two", "three"] |
startsWith
startsWith(stringToSearch, stringToFind)
Určuje, zda řetězec začíná hodnotou. Porovnání nerozlišuje malá a velká písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToSearch | Ano | string | Hodnota obsahující položku, kterou chcete najít. |
stringToFind | Ano | string | Hodnota, kterou chcete najít. |
Vrácená hodnota
True
pokud první znak nebo znaky řetězce odpovídají hodnotě; v opačném případě . False
Příklady
Následující příklad ukazuje, jak používat funkce startsWith a 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')
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
startsTrue | Bool | True |
startsCapTrue | Bool | True |
startsFalse | Bool | False |
endTrue | Bool | True |
endsCapTrue | Bool | True |
endFalse | Bool | False |
string
string(valueToConvert)
Převede zadanou hodnotu na řetězec.
Řetězce se vrátí tak, jak jsou. Jiné typy se převedou na ekvivalentní reprezentaci JSON.
Pokud potřebujete převést řetězec na JSON, tj. uvozovky nebo řídicí znaky, můžete použít substring(string([value]), 1, length(string([value]) - 2)
.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
valueToConvert | Ano | Všechny | Hodnota, která se má převést na řetězec. Libovolný typ hodnoty lze převést, včetně objektů a polí. |
Vrácená hodnota
Řetězec převedené hodnoty.
Příklady
Následující příklad ukazuje, jak převést různé typy hodnot na řetězce:
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
objectOutput | String | {"valueA":10,"valueB":"Example Text"} |
arrayOutput | String | ["'a'","\"b\"","\\c\\"] |
intOutput | String | 5 |
stringOutput | String | foo " ' \ |
stringEscapedOutput | String | "foo \" ' \\" |
podřetězec
substring(stringToParse, startIndex, length)
Vrátí podřetěr, který začíná na zadané pozici znaku a obsahuje zadaný počet znaků.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToParse | Ano | string | Původní řetězec, ze kterého se extrahuje podřetězce. |
startIndex | No | int | Pozice počátečního znaku založeného na nule pro podřetězdce. |
length | No | int | Počet znaků podřetědce. Musí odkazovat na umístění v řetězci. Musí být nula nebo větší. Pokud tento argument vynecháte, vrátí se zbytek řetězce od počáteční pozice. |
Vrácená hodnota
Podřetětěr. Nebo prázdný řetězec, pokud je délka nula.
Poznámky
Funkce selže, pokud podřetězce přesahuje konec řetězce nebo pokud je délka menší než nula. Následující příklad selže s chybou "Parametry indexu a délky musí odkazovat na umístění v řetězci. Parametr indexu: 0, parametr length: 11, délka parametru řetězce: 10.
param inputString string = '1234567890'
var prefix = substring(inputString, 0, 11)
Příklady
Následující příklad extrahuje podřetěr z parametru.
param testString string = 'one two three'
output substringOutput string = substring(testString, 4, 3)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
substringOutput | String | dva |
take
take(originalValue, numberToTake)
Vrátí řetězec se zadaným počtem znaků od začátku řetězce nebo pole se zadaným počtem prvků od začátku pole.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
originalValue | Ano | pole nebo řetězec | Pole nebo řetězec, ze které mají být prvky odebrány. |
numberToTake | Ano | int | Počet prvků nebo znaků, které se mají vzít. Pokud je tato hodnota 0 nebo menší, vrátí se prázdné pole nebo řetězec. Pokud je větší než délka daného pole nebo řetězce, vrátí se všechny prvky v poli nebo řetězci. |
Vrácená hodnota
Pole nebo řetězec.
Příklady
Následující příklad přebírá zadaný počet prvků z pole a znaky z řetězce.
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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
arrayOutput | Pole | ["one", "two"] |
stringOutput | String | on |
toLower
toLower(stringToChange)
Převede zadaný řetězec na malá písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToChange | Ano | string | Hodnota, která se má převést na malá písmena. |
Vrácená hodnota
Řetězec byl převeden na malá písmena.
Příklady
Následující příklad převede hodnotu parametru na malá a velká písmena.
param testString string = 'One Two Three'
output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
toLowerOutput | String | Jedna dva tři |
toUpperOutput | String | JEDNA DVA TŘI |
toUpper
toUpper(stringToChange)
Převede zadaný řetězec na velká písmena.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToChange | Ano | string | Hodnota, která se má převést na velká písmena. |
Vrácená hodnota
Řetězec byl převeden na velká písmena.
Příklady
Následující příklad převede hodnotu parametru na malá a velká písmena.
param testString string = 'One Two Three'
output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
toLowerOutput | String | Jedna dva tři |
toUpperOutput | String | JEDNA DVA TŘI |
zastřihnout
trim(stringToTrim)
Odebere všechny počáteční a koncové prázdné znaky ze zadaného řetězce.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToTrim | Ano | string | Hodnota, kterou chcete oříznout. |
Vrácená hodnota
Řetězec bez úvodních a koncových prázdných znaků.
Příklady
Následující příklad oříznou prázdné znaky z parametru.
param testString string = ' one two three '
output return string = trim(testString)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
return | String | Jedna dva tři |
uniqueString
uniqueString(baseString, ...)
Vytvoří deterministický hashovací řetězec založený na hodnotách zadaných jako parametry.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
baseString | Ano | string | Hodnota použitá ve funkci hash k vytvoření jedinečného řetězce. |
další parametry podle potřeby | No | string | Můžete přidat tolik řetězců, kolik potřebujete k vytvoření hodnoty, která určuje úroveň jedinečnosti. |
Poznámky
Tato funkce je užitečná, když potřebujete vytvořit jedinečný název prostředku. Zadáte hodnoty parametrů, které omezují rozsah jedinečnosti výsledku. Můžete určit, jestli je název jedinečný až do předplatného, skupiny prostředků nebo nasazení.
Vrácená hodnota není náhodný řetězec, ale spíše výsledek funkce hash. Vrácená hodnota je dlouhá 13 znaků. Není globálně jedinečný. Můžete zkombinovat hodnotu s předponou z vaší konvence vytváření názvů a vytvořit smysluplný název. Následující příklad ukazuje formát vrácené hodnoty. Skutečná hodnota se liší podle zadaných parametrů.
tcvhiyu5h2o5o
Následující příklady ukazují, jak použít uniqueString k vytvoření jedinečné hodnoty pro běžně používané úrovně.
Jedinečný obor předplatného
uniqueString(subscription().subscriptionId)
Jedinečný obor pro skupinu prostředků
uniqueString(resourceGroup().id)
Jedinečný obor nasazení pro skupinu prostředků
uniqueString(resourceGroup().id, deployment().name)
Následující příklad ukazuje, jak vytvořit jedinečný název pro účet úložiště na základě vaší skupiny prostředků. V rámci skupiny prostředků není název jedinečný, pokud je vytvořený stejným způsobem.
resource mystorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
...
}
Pokud potřebujete vytvořit nový jedinečný název pokaždé, když nasadíte soubor Bicep a nechcete aktualizovat prostředek, můžete použít funkci utcNow s uniqueString. Tento přístup můžete použít v testovacím prostředí. Příklad: viz utcNow. Všimněte si, že funkci UTCNow lze použít pouze ve výrazu pro výchozí hodnotu parametru.
Vrácená hodnota
Řetězec obsahující 13 znaků.
Příklady
Následující příklad vrátí výsledky z uniquestring:
output uniqueRG string = uniqueString(resourceGroup().id)
output uniqueDeploy string = uniqueString(resourceGroup().id, deployment().name)
uri
uri(baseUri, relativeUri)
Vytvoří absolutní identifikátor URI kombinací baseUri a řetězce relativeUri.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
baseUri | Ano | string | Základní řetězec identifikátoru URI. Dbejte na to, abyste sledovali chování týkající se zpracování koncového lomítka (/), jak je popsáno v následující tabulce. |
relativeUri | Ano | string | Relativní řetězec identifikátoru URI, který se má přidat do základního řetězce identifikátoru URI. |
Pokud
baseUri
končí koncové lomítko, výsledek je jednodušebaseUri
následovanýrelativeUri
. PokudrelativeUri
také začíná počáteční lomítko, koncové lomítko a počáteční lomítko se zkombinuje do jednoho.Pokud
baseUri
nekončí koncové lomítko, stane se jedna ze dvou věcí.Pokud
baseUri
nemá vůbec žádná lomítka (kromě "/" u přední strany), je výsledek jednodušebaseUri
následovanýrelativeUri
.Pokud
baseUri
má některá lomítka, ale nekončí lomítkem, vše od posledního lomítka se odeberebaseUri
a výsledekbaseUri
následujerelativeUri
.
Několik příkladů:
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
Úplné podrobnosti baseUri
a relativeUri
parametry jsou vyřešeny podle dokumentu RFC 3986 oddílu 5.
Vrácená hodnota
Řetězec představující absolutní identifikátor URI pro základní a relativní hodnoty.
Příklady
Následující příklad ukazuje, jak používat uri, uriComponent a 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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
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)
Zakóduje identifikátor URI.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
stringToEncode | Ano | string | Hodnota, která se má kódovat. |
Vrácená hodnota
Řetězec s hodnotou kódovanou identifikátorem URI.
Příklady
Následující příklad ukazuje, jak používat uri, uriComponent a 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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
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)
Vrátí řetězec s hodnotou zakódovanou identifikátorem URI.
Obor názvů: sys.
Parametry
Parametr | Požaduje se | Type | Popis |
---|---|---|---|
uriEncodedString | Ano | string | Zakódovaná hodnota identifikátoru URI, která se má převést na řetězec. |
Vrácená hodnota
Dekódovaný řetězec kódované hodnoty identifikátoru URI.
Příklady
Následující příklad ukazuje, jak používat uri, uriComponent a 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)
Výstup z předchozího příkladu s výchozími hodnotami je:
Name | Typ | Hodnota |
---|---|---|
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 |
Další kroky
- Popis oddílů v souboru Bicep najdete v tématu Vysvětlení struktury a syntaxe souborů Bicep.
- Pokud chcete iterovat zadaný počet opakování při vytváření typu prostředku, přečtěte si téma Iterativní smyčky v Bicep.
- Pokud chcete zjistit, jak nasadit soubor Bicep, který jste vytvořili, přečtěte si téma Nasazení prostředků pomocí Bicep a Azure PowerShellu.