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

Wartość True , jeśli element zostanie znaleziony; w przeciwnym razie wartość 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.

Przestrzeń nazw: sys.

Parametry

Parametr Wymagania Type Opis
itemToTest Tak tablica, obiekt lub ciąg Wartość do sprawdzenia, czy jest pusta.

Wartość zwracana

Zwraca wartość True , jeśli wartość jest pusta; 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 = ''

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

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

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

Wartość True , jeśli ostatni znak lub znaki ciągu są zgodne z wartością; w przeciwnym razie wartość 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@2018-07-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

Wartość True, jeśli pierwszy znak lub znaki ciągu są zgodne z wartością; w przeciwnym razie fałsz.

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

Przycinanie

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@2018-07-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.
Relativeuri Tak string Względny ciąg identyfikatora URI, który ma zostać dodany do podstawowego ciągu identyfikatora URI.
  • Jeśli identyfikator baseUri kończy się ukośnikiem końcowym, wynikiem jest po prostu baseUri, po którym następuje identyfikator relativeUri.

  • Jeśli identyfikator baseUri nie kończy się na końcowym ukośniku jednej z dwóch rzeczy.

    • Jeśli identyfikator baseUri w ogóle nie ma ukośników (oprócz wartości "//" w pobliżu przodu), wynik jest po prostu baseUri, po którym następuje identyfikator relativeUri.

    • Jeśli identyfikator baseUri ma pewne ukośniki, ale nie kończy się ukośnikiem, wszystko od ostatniego ukośnika do wewnątrz jest usuwane z identyfikatora baseUri, a wynik jest baseUri, po którym następuje identyfikator relativeUri.

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/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, parametry baseUri i relativeUri są rozpoznawane zgodnie z opisem w specyfikacji 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