Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Operatory dostępu służą do uzyskiwania dostępu do zasobów podrzędnych, właściwości obiektów i elementów w tablicy. Możesz również użyć metody dostępu do właściwości, aby użyć niektórych funkcji.
| Obsługujący | Nazwa |
|---|---|
[] |
Akcesorium indeksu |
[^index] |
Akcesorium do indeksu odwrotnego |
. |
Akcesorium funkcji |
:: |
Akcesorium zagnieżdżonego zasobu |
. |
Akcesorium do właściwości |
Akcesorium indeksu
array[integerIndex]
object['stringIndex']
Użyj metody dostępu indeksu, aby uzyskać element z tablicy lub właściwości z obiektu.
W przypadku tablicy podaj indeks jako liczbę całkowitą. Liczba całkowita odpowiada pozycji zerowej elementu do pobrania.
W przypadku obiektu podaj indeks jako ciąg. Ciąg pasuje do nazwy obiektu do pobrania.
Poniższy przykład pobiera element w tablicy.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
Dane wyjściowe z przykładu:
| Nazwa | Typ | Wartość |
|---|---|---|
| accessorResult | sznurek | "Contoso" |
Następny przykład pobiera właściwość na obiekcie.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Dane wyjściowe z przykładu:
| Nazwa | Typ | Wartość |
|---|---|---|
| accessorResult | sznurek | "Programowanie" |
Akcesorium do indeksu odwrotnego
Począwszy od interfejsu wiersza polecenia Bicep w wersji 0.34.x, operator dostępu indeksu odwrotnego (^) umożliwia pobranie elementu z tablicy przez zliczanie od końca. Ten jeden indeks oznacza, że ^1 zwraca ostatni element, ^2 drugi do ostatniego itd. Indeks musi być dodatnią liczbą całkowitą większą niż zero i może być określony jako literał lub wyrażenie, które daje w wyniku liczbę całkowitą.
array[^index]
Jeśli indeks przekracza długość tablicy, występuje błąd kompilacji dla indeksów statycznych lub występuje błąd środowiska uruchomieniowego dla indeksów dynamicznych.
W przypadku tablic stałych operator jest obliczany w czasie kompilacji. W przypadku dynamicznych danych wejściowych, takich jak parametry, ocena odbywa się w czasie wdrażania.
Przykład
var items = [
'apple'
'banana'
'orange'
'grape'
]
output secondToLast string = items[^2]
Dane wyjściowe z przykładu:
| Nazwa | Typ | Wartość |
|---|---|---|
| secondToLast | sznurek | "pomarańczowy" |
Akcesorium funkcji
resourceName.functionName()
Dwie funkcje — getSecret i list* — obsługują operator dostępu do wywoływania funkcji. Te dwie funkcje są jedynymi funkcjami obsługującymi operator dostępu.
Przykład
Poniższy przykład odwołuje się do istniejącego magazynu kluczy, a następnie używa getSecret go do przekazania wpisu tajnego do modułu.
resource kv 'Microsoft.KeyVault/vaults@2025-05-01' existing = {
name: kvName
scope: resourceGroup(subscriptionId, kvResourceGroup )
}
module sql './sql.bicep' = {
name: 'deploySQL'
params: {
sqlServerName: sqlServerName
adminLogin: adminLogin
adminPassword: kv.getSecret('vmAdminPassword')
}
}
Akcesorium zagnieżdżonego zasobu
parentResource::nestedResource
Zagnieżdżony zasób to zasób zadeklarowany w ramach innego zasobu. Użyj metody dostępu :: do zagnieżdżonego zasobu, aby uzyskać dostęp do tych zagnieżdżonych zasobów spoza zasobu nadrzędnego.
W ramach zasobu nadrzędnego odwołujesz się do zagnieżdżonego zasobu z tylko nazwą symboliczną. Przy odwoływania się do zagnieżdżonego zasobu należy używać tylko wtedy, gdy odwołujesz się do zagnieżdżonego zasobu spoza zasobu nadrzędnego.
Przykład
W poniższym przykładzie pokazano, jak odwoływać się do zagnieżdżonego zasobu z zasobu nadrzędnego i spoza zasobu nadrzędnego.
resource demoParent 'demo.Rp/parentType@2024-01-01' = {
name: 'demoParent'
location: 'West US'
// Declare a nested resource within 'demoParent'
resource demoNested 'childType' = {
name: 'demoNested'
properties: {
displayName: 'The nested instance.'
}
}
// Declare another nested resource
resource demoSibling 'childType' = {
name: 'demoSibling'
properties: {
// Use symbolic name to reference because this line is within demoParent
displayName: 'Sibling of ${demoNested.properties.displayName}'
}
}
}
// Use nested accessor to reference because this line is outside of demoParent
output displayName string = demoParent::demoNested.properties.displayName
Akcesorium do właściwości
objectName.propertyName
Użyj metod dostępu właściwości, aby uzyskać dostęp do właściwości obiektu. Metody dostępu do właściwości mogą być używane z dowolnym obiektem, w tym parametrami i zmiennymi, które są obiektami. Podczas korzystania z dostępu do właściwości w wyrażeniu, które nie jest obiektem, występuje błąd.
Przykład
W poniższym przykładzie przedstawiono zmienną obiektu i sposób uzyskiwania dostępu do właściwości.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Dane wyjściowe z przykładu:
| Nazwa | Typ | Wartość |
|---|---|---|
outputZ |
sznurek | "Hello" |
outputQ |
liczba całkowita | 42 |
Zazwyczaj używasz metody dostępu właściwości z zasobem wdrożonym w pliku Bicep. Poniższy przykład tworzy publiczny adres IP i używa metod dostępu do właściwości w celu zwrócenia wartości z wdrożonego zasobu.
resource publicIp 'Microsoft.Network/publicIPAddresses@2025-01-01' = {
name: publicIpResourceName
location: location
properties: {
publicIPAllocationMethod: dynamicAllocation ? 'Dynamic' : 'Static'
dnsSettings: {
domainNameLabel: publicIpDnsLabel
}
}
}
// Use property accessor to get value
output ipFqdn string = publicIp.properties.dnsSettings.fqdn
Dalsze kroki
- Aby uruchomić przykłady, użyj interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby wdrożyć plik Bicep.
- Aby utworzyć plik Bicep, zobacz Szybki start: tworzenie plików Bicep za pomocą programu Visual Studio Code.
- Aby uzyskać informacje na temat sposobu rozwiązywania błędów typu Bicep, zobacz Any function for Bicep (Dowolna funkcja dla Bicep).