Funkcje ciągów dla Bicep
W tym artykule opisano funkcje Bicep do pracy z ciągami.
base64
base64(inputString)
Zwraca reprezentację base64 ciągu wejściowego.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
inputString | Tak | string | Wartość, która ma być zwracana jako reprezentacja base64. |
Wartość zwracana
Ciąg zawierający reprezentację base64.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji 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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
base64Output | String | b25lLCB0d28sIHRocmVl |
toStringOutput | String | Raz dwa trzy |
toJsonOutput | Objekt | {"one": "a", "two": "b"} |
base64ToJson
base64ToJson(base64Value)
Konwertuje reprezentację base64 na obiekt JSON.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
base64Value | Tak | string | Reprezentacja base64 do konwersji na obiekt JSON. |
Wartość zwracana
Obiekt JSON.
Przykłady
W poniższym przykładzie użyto funkcji base64ToJson w celu przekonwertowania wartości 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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
base64Output | String | b25lLCB0d28sIHRocmVl |
toStringOutput | String | Raz dwa trzy |
toJsonOutput | Objekt | {"one": "a", "two": "b"} |
base64ToString
base64ToString(base64Value)
Konwertuje reprezentację base64 na ciąg.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
base64Value | Tak | string | Reprezentacja base64 do konwersji na ciąg. |
Wartość zwracana
Ciąg przekonwertowanej wartości base64.
Przykłady
W poniższym przykładzie użyto funkcji base64ToString w celu przekonwertowania wartości 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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
base64Output | String | b25lLCB0d28sIHRocmVl |
toStringOutput | String | Raz dwa trzy |
toJsonOutput | Objekt | {"one": "a", "two": "b"} |
concat
concat(arg1, arg2, arg3, ...)
Łączy wiele wartości ciągu i zwraca połączony ciąg lub łączy wiele tablic i zwraca połączoną tablicę. Aby zwiększyć czytelność, użyj interpolacji ciągów concat()
zamiast funkcji . Jednak w niektórych przypadkach, takich jak zamiana ciągów w ciągach wielowierszowych, może być konieczne powrót przy użyciu concat()
funkcji lub replace()
funkcji.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | ciąg lub tablica | Pierwszy ciąg lub tablica do łączenia. |
więcej argumentów | Nie. | ciąg lub tablica | Więcej ciągów lub tablic w kolejności sekwencyjnej na potrzeby łączenia. |
Ta funkcja może przyjmować dowolną liczbę argumentów i może akceptować ciągi lub tablice dla parametrów. Nie można jednak podać zarówno tablic, jak i ciągów dla parametrów. Ciągi są łączone tylko z innymi ciągami.
Wartość zwracana
Ciąg lub tablica połączonych wartości.
Przykłady
W poniższym przykładzie pokazano porównanie między użyciem interpolacji a użyciem concat()
funkcji . Te dwa dane wyjściowe zwracają tę samą wartość.
param prefix string = 'prefix'
output concatOutput string = concat(prefix, 'And', uniqueString(resourceGroup().id))
output interpolationOutput string = '${prefix}And${uniqueString(resourceGroup().id)}'
Dane wyjściowe z poprzedniego przykładu z wartością domyślną to:
Nazwisko | Typ | Wartość |
---|---|---|
concatOutput | String | prefixAnd5yj4yjf5mbg72 |
interpolacjaOutput | String | prefixAnd5yj4yjf5mbg72 |
Interpolacja nie jest obecnie obsługiwana w ciągach wielowierszowych. W poniższym przykładzie pokazano porównanie między użyciem interpolacji a użyciem concat()
funkcji .
var blocked = 'BLOCKED'
output concatOutput string = concat('''interpolation
is ''', blocked)
output interpolationOutput string = '''interpolation
is ${blocked}'''
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
concatOutput | String | interpolacja\nis ZABLOKOWANE |
interpolacjaOutput | String | interpolacja\nis ${blocked} |
zawiera
contains(container, itemToFind)
Sprawdza, czy tablica zawiera wartość, obiekt zawiera klucz, czy ciąg zawiera podciąg. Porównanie ciągów uwzględnia wielkość liter. Jednak podczas testowania, czy obiekt zawiera klucz, porównanie jest bez uwzględniania wielkości liter.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
kontener | Tak | tablica, obiekt lub ciąg | Wartość zawierająca wartość do znalezienia. |
itemToFind | Tak | ciąg lub int | Wartość do znalezienia. |
Wartość zwracana
True
jeśli element zostanie znaleziony; w przeciwnym razie, False
.
Przykłady
W poniższym przykładzie pokazano, jak używać elementów z różnymi typami:
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')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
stringTrue | Bool | Prawda |
stringFalse | Bool | Fałsz |
objectTrue | Bool | Prawda |
objectFalse | Bool | Fałsz |
arrayTrue | Bool | Prawda |
arrayFalse | Bool | Fałsz |
dataUri
dataUri(stringToConvert)
Konwertuje wartość na identyfikator URI danych.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToConvert | Tak | string | Wartość, która ma być konwertowana na identyfikator URI danych. |
Wartość zwracana
Ciąg sformatowany jako identyfikator URI danych.
Przykłady
Poniższy przykład konwertuje wartość na identyfikator URI danych i konwertuje identyfikator URI danych na ciąg:
param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='
output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
dataUriOutput | String | data:text/plain; charset=utf8; base64,SGVsbG8= |
toStringOutput | String | Hello, World! |
dataUriToString
dataUriToString(dataUriToConvert)
Konwertuje sformatowaną wartość identyfikatora URI danych na ciąg.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
dataUriToConvert | Tak | string | Wartość identyfikatora URI danych do konwersji. |
Wartość zwracana
Ciąg zawierający przekonwertowaną wartość.
Przykłady
Poniższy przykład konwertuje wartość na identyfikator URI danych i konwertuje identyfikator URI danych na ciąg:
param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='
output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
dataUriOutput | String | data:text/plain; charset=utf8; base64,SGVsbG8= |
toStringOutput | String | Hello, World! |
empty
empty(itemToTest)
Określa, czy tablica, obiekt lub ciąg jest pusta lub ma wartość null.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
itemToTest | Tak | tablica, obiekt lub ciąg | Wartość do sprawdzenia, czy jest pusta, czy ma wartość null. |
Wartość zwracana
Zwraca wartość True , jeśli wartość jest pusta lub ma wartość null; w przeciwnym razie wartość False.
Przykłady
Poniższy przykład sprawdza, czy tablica, obiekt i ciąg są puste.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayEmpty | Bool | Prawda |
objectEmpty | Bool | Prawda |
stringEmpty | Bool | Prawda |
stringNull | Bool | Prawda |
endsWith
endsWith(stringToSearch, stringToFind)
Określa, czy ciąg kończy się wartością. Porównanie jest bez uwzględniania wielkości liter.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToSearch | Tak | string | Wartość zawierająca element do znalezienia. |
stringToFind | Tak | string | Wartość do znalezienia. |
Wartość zwracana
True
jeśli ostatni znak lub znaki ciągu są zgodne z wartością; w przeciwnym razie, False
.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji startsWith i 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')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
startsTrue | Bool | Prawda |
startsCapTrue | Bool | Prawda |
startsFalse | Bool | Fałsz |
endsTrue | Bool | Prawda |
endsCapTrue | Bool | Prawda |
endsFalse | Bool | Fałsz |
pierwszy
first(arg1)
Zwraca pierwszy znak ciągu lub pierwszy element tablicy. Jeśli zostanie podany pusty ciąg, funkcja spowoduje utworzenie pustego ciągu. W przypadku pustej tablicy funkcja zwraca wartość null
.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica lub ciąg | Wartość do pobrania pierwszego elementu lub znaku. |
Wartość zwracana
Ciąg pierwszego znaku lub typ (ciąg, int, tablica lub obiekt) pierwszego elementu w tablicy.
Przykłady
W poniższym przykładzie pokazano, jak używać pierwszej funkcji z tablicą i ciągiem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | String | jeden |
stringOutput | String | O |
format
format(formatString, arg1, arg2, ...)
Tworzy sformatowany ciąg na podstawie wartości wejściowych.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
formatString | Tak | string | Ciąg formatu złożonego. |
arg1 | Tak | ciąg, liczba całkowita lub wartość logiczna | Wartość do uwzględnienia w sformatowanych ciągach. |
argumenty dodatkowe | Nie. | ciąg, liczba całkowita lub wartość logiczna | Dodatkowe wartości do uwzględnienia w sformatowanych ciągach. |
Uwagi
Ta funkcja służy do formatowania ciągu w pliku Bicep. Używa tych samych opcji formatowania co metoda System.String.Format na platformie .NET.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji formatowania.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
formatTest | String | Hello, User. Formatted number: 8,175,133 |
formatObject | String | objectToFormat: {'prop':'value'} |
Identyfikator GUID
guid(baseString, ...)
Tworzy wartość w formacie globalnie unikatowego identyfikatora na podstawie wartości podanych jako parametry.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
baseString | Tak | string | Wartość użyta w funkcji skrótu do utworzenia identyfikatora GUID. |
dodatkowe parametry zgodnie z potrzebami | Nie. | string | Możesz dodać dowolną liczbę ciągów, aby utworzyć wartość określającą poziom unikatowości. |
Uwagi
Ta funkcja jest przydatna, gdy musisz utworzyć wartość w formacie globalnie unikatowego identyfikatora. Należy podać wartości parametrów, które ograniczają zakres unikatowości dla wyniku. Możesz określić, czy nazwa jest unikatowa dla subskrypcji, grupy zasobów lub wdrożenia.
Zwracana wartość nie jest losowym ciągiem, ale raczej wynikiem funkcji skrótu parametrów. Zwracana wartość ma długość 36 znaków. Nie jest ona globalnie unikatowa. Aby utworzyć nowy identyfikator GUID, który nie jest oparty na tej wartości skrótu parametrów, użyj nowej funkcjiGuid .
Uwaga
Kolejność parametrów wpływa na zwracaną wartość. Na przykład:
guid('hello', 'world')
i guid('world', 'hello')
nie zwracaj tej samej wartości.
W poniższych przykładach pokazano, jak za pomocą identyfikatora GUID utworzyć unikatową wartość dla często używanych poziomów.
Unikatowy zakres subskrypcji
guid(subscription().subscriptionId)
Unikatowy zakres dla grupy zasobów
guid(resourceGroup().id)
Unikatowy zakres wdrożenia dla grupy zasobów
guid(resourceGroup().id, deployment().name)
Funkcja guid
implementuje algorytm z RFC 4122 §4.3. Oryginalne źródło można znaleźć w guidUtility z pewnymi modyfikacjami.
Wartość zwracana
Ciąg zawierający 36 znaków w formacie globalnie unikatowego identyfikatora.
Przykłady
Poniższy przykład zwraca wyniki z identyfikatora 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)
Zwraca pierwszą pozycję wartości w ciągu. Porównanie jest bez uwzględniania wielkości liter.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToSearch | Tak | string | Wartość zawierająca element do znalezienia. |
stringToFind | Tak | string | Wartość do znalezienia. |
Wartość zwracana
Liczba całkowita reprezentująca położenie elementu do znalezienia. Wartość jest oparta na zerach. Jeśli element nie zostanie znaleziony, zostanie zwrócony -1.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji indexOf i 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')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
firstT | Int | 0 |
lastT | Int | 3 |
firstString | Int | 2 |
lastString | Int | 0 |
notFound | Int | -1 |
join
join(inputArray, delimiter)
Łączy tablicę ciągów w jeden ciąg oddzielony za pomocą ogranicznika.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
inputArray | Tak | Tablica ciągów. | Tablica ciągów do sprzężenia. |
Ogranicznik | Tak | Ogranicznik używany do dzielenia ciągu. |
Wartość zwracana
Ciąg.
Przykłady
Poniższy przykład łączy tablicę ciągów wejściowych z ciągami rozdzielanymi przecinkami lub średnikami.
var arrayString = [
'one'
'two'
'three'
]
output firstOutput string = join(arrayString, ',')
output secondOutput string = join(arrayString, ';')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
firstOutput | String | "jeden,dwa,trzy" |
secondOutput | String | "jeden; Dwa; trzy" |
Ta funkcja wymaga interfejsu wiersza polecenia Bicep w wersji 0.8.X lub nowszej.
json
json(arg1)
Konwertuje prawidłowy ciąg JSON na typ danych JSON. Aby uzyskać więcej informacji, zobacz funkcja json.
Przestrzeń nazw: sys.
ostatni
last(arg1)
Zwraca ostatni znak ciągu lub ostatni element tablicy.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica lub ciąg | Wartość do pobrania ostatniego elementu lub znaku. |
Wartość zwracana
Ciąg ostatniego znaku lub typ (ciąg, int, tablica lub obiekt) ostatniego elementu w tablicy.
Przykłady
W poniższym przykładzie pokazano, jak używać ostatniej funkcji z tablicą i ciągiem.
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two Three')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | String | trzy |
stringOutput | String | e |
lastIndexOf
lastIndexOf(stringToSearch, stringToFind)
Zwraca ostatnią pozycję wartości w ciągu. Porównanie jest bez uwzględniania wielkości liter.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToSearch | Tak | string | Wartość zawierająca element do znalezienia. |
stringToFind | Tak | string | Wartość do znalezienia. |
Wartość zwracana
Liczba całkowita reprezentująca ostatnią pozycję elementu do znalezienia. Wartość jest oparta na zerach. Jeśli element nie zostanie znaleziony, zostanie zwrócony -1.
Przykłady
W poniższym przykładzie pokazano, jak używać indexOf
funkcji i 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')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
firstT | Int | 0 |
lastT | Int | 3 |
firstString | Int | 2 |
lastString | Int | 0 |
notFound | Int | -1 |
length
length(string)
Zwraca liczbę znaków w ciągu, elementy w tablicy lub właściwości na poziomie głównym w obiekcie.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
arg1 | Tak | tablica, ciąg lub obiekt | Tablica do użycia do pobierania liczby elementów, ciągu do użycia do pobierania liczby znaków lub obiektu do pobrania liczby właściwości na poziomie głównym. |
Wartość zwracana
Int.
Przykłady
W poniższym przykładzie pokazano, jak używać długości z tablicą i ciągiem:
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 100 |
newGuid
newGuid()
Zwraca wartość w formacie globalnie unikatowego identyfikatora. Tej funkcji można używać tylko w wartości domyślnej parametru.
Przestrzeń nazw: sys.
Uwagi
Tej funkcji można używać tylko w wyrażeniu dla wartości domyślnej parametru. Użycie tej funkcji w dowolnym miejscu w pliku Bicep zwraca błąd. Funkcja nie jest dozwolona w innych częściach pliku Bicep, ponieważ zwraca inną wartość za każdym razem, gdy jest wywoływana. Wdrożenie tego samego pliku Bicep z tymi samymi parametrami nie spowodowałoby niezawodnego wygenerowania tych samych wyników.
Funkcja newGuid różni się od funkcji guid , ponieważ nie bierze żadnych parametrów. Wywołanie identyfikatora GUID z tymi samymi parametrami powoduje zwrócenie tego samego identyfikatora za każdym razem. Użyj identyfikatora GUID, jeśli musisz niezawodnie wygenerować ten sam identyfikator GUID dla określonego środowiska. Użyj polecenia newGuid, gdy za każdym razem potrzebujesz innego identyfikatora, takiego jak wdrażanie zasobów w środowisku testowym.
Nowa funkcjaGuid używa struktury Guid w programie .NET Framework do generowania unikatowego identyfikatora globalnego.
Jeśli używasz opcji ponownego wdrażania wcześniejszego pomyślnego wdrożenia, a wcześniejsze wdrożenie zawiera parametr używający nowegoGuidu, parametr nie jest ponownie szacowany. Zamiast tego wartość parametru z wcześniejszego wdrożenia jest automatycznie ponownie wykorzystywana we wdrożeniu wycofywania.
W środowisku testowym może być konieczne wielokrotne wdrażanie zasobów, które działają tylko przez krótki czas. Zamiast tworzyć unikatowe nazwy, możesz użyć polecenia newGuid z unikatowym ciągiem w celu utworzenia unikatowych nazw.
Zachowaj ostrożność podczas ponownego wdrażania pliku Bicep, który opiera się na nowej funkcjiGuid dla wartości domyślnej. Po ponownym wdróżeniu i nie podaniu wartości parametru funkcja zostanie ponownie zceniona. Jeśli chcesz zaktualizować istniejący zasób, a nie utworzyć nowego, przekaż wartość parametru z wcześniejszego wdrożenia.
Wartość zwracana
Ciąg zawierający 36 znaków w formacie globalnie unikatowego identyfikatora.
Przykłady
W poniższym przykładzie przedstawiono parametr z nowym identyfikatorem.
param guidValue string = newGuid()
output guidOutput string = guidValue
Dane wyjściowe z poprzedniego przykładu różnią się w zależności od wdrożenia, ale będą podobne do następujących:
Nazwisko | Typ | Wartość |
---|---|---|
guidOutput | string | b76a51fc-bd72-4a77-b9a2-3c29e7d2e551 |
W poniższym przykładzie użyto nowej funkcjiGuid do utworzenia unikatowej nazwy konta magazynu. Ten plik Bicep może działać w środowisku testowym, w którym konto magazynu istnieje przez krótki czas i nie jest wdrażane ponownie.
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
Dane wyjściowe z poprzedniego przykładu różnią się w zależności od wdrożenia, ale będą podobne do następujących:
Nazwisko | Typ | Wartość |
---|---|---|
nameOutput | string | storagenziwvyru7uxie |
padLeft
padLeft(valueToPad, totalLength, paddingCharacter)
Zwraca ciąg wyrównany do prawej, dodając znaki do lewej do momentu osiągnięcia całkowitej określonej długości.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
valueToPad | Tak | ciąg lub int | Wartość do wyrównania do prawej. |
totalLength | Tak | int | Całkowita liczba znaków w zwracanym ciągu. |
paddingCharacter | Nie. | pojedynczy znak | Znak do użycia do wypełnienia po lewej stronie do momentu osiągnięcia całkowitej długości. Wartość domyślna to spacja. |
Jeśli oryginalny ciąg jest dłuższy niż liczba znaków do wypełnienia, nie są dodawane żadne znaki.
Wartość zwracana
Ciąg z co najmniej liczbą określonych znaków.
Przykłady
W poniższym przykładzie pokazano, jak wypełnić wartość parametru podanego przez użytkownika przez dodanie znaku zero, dopóki nie osiągnie całkowitej liczby znaków.
param testString string = '123'
output stringOutput string = padLeft(testString, 10, '0')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
stringOutput | String | 0000000123 |
replace
replace(originalString, oldString, newString)
Zwraca nowy ciąg ze wszystkimi wystąpieniami jednego ciągu zastąpionego przez inny ciąg.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
originalString | Tak | string | Wartość zawierająca wszystkie wystąpienia jednego ciągu zastąpione przez inny ciąg. |
oldString | Tak | string | Ciąg, który ma zostać usunięty z oryginalnego ciągu. |
newString | Tak | string | Ciąg do dodania zamiast usuniętego ciągu. |
Wartość zwracana
Ciąg z zastąpionymi znakami.
Przykłady
W poniższym przykładzie pokazano, jak usunąć wszystkie kreski z ciągu dostarczonego przez użytkownika i jak zastąpić część ciągu innym ciągiem.
param testString string = '123-123-1234'
output firstOutput string = replace(testString, '-', '')
output secondOutput string = replace(testString, '1234', 'xxxx')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
firstOutput | String | 1231231234 |
secondOutput | String | 123-123-xxxx |
skip
skip(originalValue, numberToSkip)
Zwraca ciąg ze wszystkimi znakami po określonej liczbie znaków lub tablicą ze wszystkimi elementami po określonej liczbie elementów.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
originalValue | Tak | tablica lub ciąg | Tablica lub ciąg do użycia do pomijania. |
numberToSkip | Tak | int | Liczba elementów lub znaków do pominięcia. Jeśli ta wartość jest 0 lub mniejsza, zwracane są wszystkie elementy lub znaki w wartości. Jeśli jest on większy niż długość tablicy lub ciągu, zwracana jest pusta tablica lub ciąg. |
Wartość zwracana
Tablica lub ciąg.
Przykłady
Poniższy przykład pomija określoną liczbę elementów w tablicy i określoną liczbę znaków w ciągu.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | Tablica | ["trzy"] |
stringOutput | String | dwa trzy |
split
split(inputString, delimiter)
Zwraca tablicę ciągów, która zawiera podciągi ciągu wejściowego rozdzielanego przez określone ograniczniki.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
inputString | Tak | string | Ciąg do podzielenia. |
Ogranicznik | Tak | ciąg lub tablica ciągów | Ogranicznik używany do dzielenia ciągu. |
Wartość zwracana
Tablica ciągów.
Przykłady
Poniższy przykład dzieli ciąg wejściowy z przecinkiem i przecinkiem lub średnikiem.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
firstOutput | Tablica | ["jeden", "dwa", "trzy"] |
secondOutput | Tablica | ["jeden", "dwa", "trzy"] |
startsWith
startsWith(stringToSearch, stringToFind)
Określa, czy ciąg zaczyna się od wartości. Porównanie jest bez uwzględniania wielkości liter.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToSearch | Tak | string | Wartość zawierająca element do znalezienia. |
stringToFind | Tak | string | Wartość do znalezienia. |
Wartość zwracana
True
jeśli pierwszy znak lub znaki ciągu są zgodne z wartością; w przeciwnym razie, False
.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji startsWith i 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')
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
startsTrue | Bool | Prawda |
startsCapTrue | Bool | Prawda |
startsFalse | Bool | Fałsz |
endsTrue | Bool | Prawda |
endsCapTrue | Bool | Prawda |
endsFalse | Bool | Fałsz |
string
string(valueToConvert)
Konwertuje określoną wartość na ciąg.
Ciągi są zwracane zgodnie z rzeczywistymi wartościami. Inne typy są konwertowane na równoważną reprezentację JSON.
Jeśli musisz przekonwertować ciąg na kod JSON, tj. cudzysłów/ucieczki, możesz użyć polecenia substring(string([value]), 1, length(string([value]) - 2)
.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
valueToConvert | Tak | Dowolne | Wartość, która ma być konwertowana na ciąg. Można przekonwertować dowolny typ wartości, w tym obiekty i tablice. |
Wartość zwracana
Ciąg przekonwertowanej wartości.
Przykłady
W poniższym przykładzie pokazano, jak przekonwertować różne typy wartości na ciągi:
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
objectOutput | String | {"valueA":10,"valueB":"Example Text"} |
arrayOutput | String | ["'a'","\"b\"","\\c\\"] |
intOutput | String | 5 |
stringOutput | String | foo " ' \ |
stringEscapedOutput | String | "foo \" ' \\" |
Podciąg
substring(stringToParse, startIndex, length)
Zwraca podciąg rozpoczynający się od określonej pozycji znaku i zawiera określoną liczbę znaków.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToParse | Tak | string | Oryginalny ciąg, z którego wyodrębniono podciąg. |
startIndex | Nie. | int | Położenie znaku początkowego na podstawie zera dla podciągu. |
length | Nie. | int | Liczba znaków podciągów. Musi odwoływać się do lokalizacji w ciągu. Musi mieć wartość zero lub większą. W przypadku pominięcia pozostała część ciągu z pozycji początkowej zostanie zwrócona. |
Wartość zwracana
Podciąg. Lub pusty ciąg, jeśli długość wynosi zero.
Uwagi
Funkcja kończy się niepowodzeniem, gdy podciąg wykracza poza koniec ciągu lub gdy długość jest mniejsza niż zero. Poniższy przykład kończy się niepowodzeniem z powodu błędu "Parametry indeksu i długości muszą odwoływać się do lokalizacji w ciągu. Parametr indeksu: "0", parametr length: "11", długość parametru ciągu: "10".
param inputString string = '1234567890'
var prefix = substring(inputString, 0, 11)
Przykłady
Poniższy przykład wyodrębnia podciąg z parametru.
param testString string = 'one two three'
output substringOutput string = substring(testString, 4, 3)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
podciągoutput | String | dwa |
take
take(originalValue, numberToTake)
Zwraca ciąg o określonej liczbie znaków od początku ciągu lub tablicy z określoną liczbą elementów od początku tablicy.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
originalValue | Tak | tablica lub ciąg | Tablica lub ciąg, z których mają być zabierane elementy. |
numberToTake | Tak | int | Liczba elementów lub znaków do podjęcia. Jeśli ta wartość jest 0 lub mniejsza, zwracana jest pusta tablica lub ciąg. Jeśli jest on większy niż długość danej tablicy lub ciągu, zwracane są wszystkie elementy tablicy lub ciągu. |
Wartość zwracana
Tablica lub ciąg.
Przykłady
W poniższym przykładzie określona liczba elementów z tablicy i znaki z ciągu.
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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
arrayOutput | Tablica | ["jeden", "dwa"] |
stringOutput | String | on |
toLower
toLower(stringToChange)
Konwertuje określony ciąg na małe litery.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToChange | Tak | string | Wartość, która ma być konwertowana na małe litery. |
Wartość zwracana
Ciąg przekonwertowany na małe litery.
Przykłady
Poniższy przykład konwertuje wartość parametru na małe litery i na wielkie litery.
param testString string = 'One Two Three'
output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
toLowerOutput | String | Raz dwa trzy |
toUpperOutput | String | RAZ DWA TRZY |
toUpper
toUpper(stringToChange)
Konwertuje określony ciąg na wielkie litery.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToChange | Tak | string | Wartość, która ma być konwertowana na wielkie litery. |
Wartość zwracana
Ciąg przekonwertowany na wielkie litery.
Przykłady
Poniższy przykład konwertuje wartość parametru na małe litery i na wielkie litery.
param testString string = 'One Two Three'
output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
toLowerOutput | String | Raz dwa trzy |
toUpperOutput | String | RAZ DWA TRZY |
przycinać
trim(stringToTrim)
Usuwa wszystkie znaki wiodące i końcowe odstępy z określonego ciągu.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToTrim | Tak | string | Wartość do przycinania. |
Wartość zwracana
Ciąg bez znaków wiodących i końcowych odstępów.
Przykłady
W poniższym przykładzie znaki odstępu są przycinane z parametru .
param testString string = ' one two three '
output return string = trim(testString)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
return | String | Raz dwa trzy |
uniqueString
uniqueString(baseString, ...)
Tworzy deterministyczny ciąg skrótu na podstawie wartości podanych jako parametry.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
baseString | Tak | string | Wartość użyta w funkcji skrótu do utworzenia unikatowego ciągu. |
dodatkowe parametry zgodnie z potrzebami | Nie. | string | Możesz dodać dowolną liczbę ciągów, aby utworzyć wartość określającą poziom unikatowości. |
Uwagi
Ta funkcja jest przydatna, gdy musisz utworzyć unikatową nazwę zasobu. Należy podać wartości parametrów, które ograniczają zakres unikatowości dla wyniku. Możesz określić, czy nazwa jest unikatowa dla subskrypcji, grupy zasobów lub wdrożenia.
Zwracana wartość nie jest losowym ciągiem, ale raczej wynikiem funkcji skrótu. Zwracana wartość to 13 znaków. Nie jest ona globalnie unikatowa. Możesz połączyć wartość z prefiksem z konwencji nazewnictwa, aby utworzyć nazwę, która ma znaczenie. W poniższym przykładzie pokazano format zwróconej wartości. Rzeczywista wartość zależy od podanych parametrów.
tcvhiyu5h2o5o
W poniższych przykładach pokazano, jak za pomocą funkcji uniqueString utworzyć unikatową wartość dla często używanych poziomów.
Unikatowy zakres subskrypcji
uniqueString(subscription().subscriptionId)
Unikatowy zakres dla grupy zasobów
uniqueString(resourceGroup().id)
Unikatowy zakres wdrożenia dla grupy zasobów
uniqueString(resourceGroup().id, deployment().name)
W poniższym przykładzie pokazano, jak utworzyć unikatową nazwę konta magazynu na podstawie grupy zasobów. W grupie zasobów nazwa nie jest unikatowa, jeśli została skonstruowana w taki sam sposób.
resource mystorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
...
}
Jeśli musisz utworzyć nową unikatową nazwę za każdym razem, gdy wdrożysz plik Bicep i nie zamierzasz aktualizować zasobu, możesz użyć funkcji utcNow z uniqueString. Można użyć tego podejścia w środowisku testowym. Aby zapoznać się z przykładem, zobacz utcNow. Zwróć uwagę, że funkcja utcNow może być używana tylko w wyrażeniu dla wartości domyślnej parametru.
Wartość zwracana
Ciąg zawierający 13 znaków.
Przykłady
Poniższy przykład zwraca wyniki z unikatowego ciągu:
output uniqueRG string = uniqueString(resourceGroup().id)
output uniqueDeploy string = uniqueString(resourceGroup().id, deployment().name)
uri
uri(baseUri, relativeUri)
Tworzy bezwzględny identyfikator URI przez połączenie identyfikatora baseUri i ciągu względnego identyfikatoraURI.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
baseUri | Tak | string | Ciąg identyfikatora URI podstawowego. Zwróć uwagę na zachowanie dotyczące obsługi ukośnika końcowego ('/'), zgodnie z opisem w poniższej tabeli. |
względny identyfikatorURI | Tak | string | Względny ciąg identyfikatora URI, który ma zostać dodany do podstawowego ciągu identyfikatora URI. |
Jeśli
baseUri
kończy się ukośnikiem końcowym, wynik jest po prostubaseUri
obserwowany przezrelativeUri
. JeślirelativeUri
również zaczyna się od wiodącego ukośnika, końcowy ukośnik i wiodący ukośnik zostaną połączone w jeden.Jeśli
baseUri
nie kończy się na końcowym ukośniku jednej z dwóch rzeczy.Jeśli
baseUri
w ogóle nie ma ukośników (oprócz "//" w pobliżu przodu), wynik jest po prostubaseUri
obserwowany przezrelativeUri
.Jeśli
baseUri
ma jakieś ukośniki, ale nie kończy się ukośnikiem, wszystko od ostatniego ukośnika do wewnątrz zostanie usunięte,baseUri
a porelativeUri
wyniku następujebaseUri
.
Oto kilka przykładów:
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
Aby uzyskać szczegółowe informacje, baseUri
parametry i relativeUri
są rozpoznawane zgodnie z opisem w RFC 3986, sekcja 5.
Wartość zwracana
Ciąg reprezentujący bezwzględny identyfikator URI dla wartości podstawowych i względnych.
Przykłady
W poniższym przykładzie pokazano, jak używać identyfikatora URI, identyfikatora uriComponent i 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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
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)
Koduje identyfikator URI.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
stringToEncode | Tak | string | Wartość do zakodowania. |
Wartość zwracana
Ciąg zakodowanej wartości identyfikatora URI.
Przykłady
W poniższym przykładzie pokazano, jak używać identyfikatora URI, identyfikatora uriComponent i 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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
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)
Zwraca ciąg zakodowanej wartości identyfikatora URI.
Przestrzeń nazw: sys.
Parametry
Parametr | Wymagania | Type | Opis |
---|---|---|---|
uriEncodedString | Tak | string | Zakodowana wartość identyfikatora URI do konwersji na ciąg. |
Wartość zwracana
Zdekodowany ciąg zakodowanej wartości identyfikatora URI.
Przykłady
W poniższym przykładzie pokazano, jak używać identyfikatora URI, identyfikatora uriComponent i 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)
Dane wyjściowe z poprzedniego przykładu z wartościami domyślnymi to:
Nazwisko | Typ | Wartość |
---|---|---|
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 |
Następne kroki
- Opis sekcji w pliku Bicep można znaleźć w temacie Understand the structure and syntax of Bicep files (Opis struktury i składni plików Bicep).
- Aby iterować określoną liczbę razy podczas tworzenia typu zasobu, zobacz Iteracyjne pętle w Bicep.
- Aby zobaczyć, jak wdrożyć utworzony plik Bicep, zobacz Deploy resources with Bicep and Azure PowerShell (Wdrażanie zasobów przy użyciu aplikacji Bicep i programu Azure PowerShell).