Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Operátory přístupového objektu slouží k přístupu k podřízeným prostředkům, vlastnostem objektů a prvkům v poli. Některé funkce můžete použít také pomocí přístupového objektu vlastnosti.
| Operátor | Název |
|---|---|
[] |
Přístupové objekty indexu |
[^index] |
Zpětné přístupové objekty indexu |
. |
Přístupové objekty funkcí |
:: |
Vnořené přístupové objekty prostředků |
. |
Přístupové objekty vlastností |
Přístupové objekty indexu
array[integerIndex]
object['stringIndex']
Pomocí přístupového objektu indexu získáte prvek z pole nebo vlastnosti z objektu.
Pro pole zadejte index jako celé číslo. Celé číslo odpovídá nulové pozici prvku, který se má načíst.
Pro objekt zadejte index jako řetězec. Řetězec odpovídá názvu objektu, který se má načíst.
Následující příklad získá prvek v poli.
var arrayVar = [
'Coho'
'Contoso'
'Fabrikam'
]
output accessorResult string = arrayVar[1]
Výstup z příkladu:
| Název | Typ | Hodnota |
|---|---|---|
| accessorResult | řetězec | Contoso |
Další příklad získá vlastnost objektu.
var environmentSettings = {
dev: {
name: 'Development'
}
prod: {
name: 'Production'
}
}
output accessorResult string = environmentSettings['dev'].name
Výstup z příkladu:
| Název | Typ | Hodnota |
|---|---|---|
| accessorResult | řetězec | Vývoj |
Zpětné přístupové objekty indexu
Počínaje rozhraním příkazového řádku Bicep verze 0.34.x umožňuje operátor zpětného přístupového objektu indexu (^) načíst prvek z pole počítáním od konce. Tento index typu 1 znamená ^1 , že vrátí poslední položku, ^2 druhou k poslední a tak dále. Index musí být kladné celé číslo větší než nula a lze ho zadat jako literál nebo výraz, který se vyhodnotí jako celé číslo.
array[^index]
Pokud index překročí délku pole, dojde k chybě kompilace statických indexů nebo k chybě za běhu u dynamických indexů.
U konstantních polí se operátor vyhodnocuje v době kompilace. U dynamických vstupů, jako jsou parametry, probíhá vyhodnocení v době nasazení.
Příklad
var items = [
'apple'
'banana'
'orange'
'grape'
]
output secondToLast string = items[^2]
Výstup z příkladu:
| Název | Typ | Hodnota |
|---|---|---|
| secondToLast | řetězec | "oranžová" |
Přístupové objekty funkcí
resourceName.functionName()
Dvě funkce – getSecret a list* – podporují operátor příslušenství pro volání funkce. Tyto dvě funkce jsou jediné funkce, které podporují operátor příslušenství.
Příklad
Následující příklad odkazuje na existující trezor klíčů a pak použije getSecret k předání tajného kódu modulu.
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')
}
}
Vnořené přístupové objekty prostředků
parentResource::nestedResource
Vnořený prostředek je prostředek, který je deklarován v rámci jiného prostředku. Pomocí vnořeného přístupového objektu :: prostředku můžete přistupovat k vnořeným prostředkům mimo nadřazený prostředek.
V rámci nadřazeného prostředku odkazujete na vnořený prostředek pouze s symbolickým názvem. Při odkazování na vnořený prostředek mimo nadřazený prostředek stačí použít pouze vnořený přístup k prostředku.
Příklad
Následující příklad ukazuje, jak odkazovat na vnořený prostředek z nadřazeného prostředku a mimo nadřazený prostředek.
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
Přístupový prvek k vlastnosti
objectName.propertyName
Pro přístup k vlastnostem objektu použijte přístupové objekty. Přístupové objekty vlastností lze použít s libovolným objektem, včetně parametrů a proměnných, které jsou objekty. Při použití přístupu k vlastnosti ve výrazu, který není objektem, se zobrazí chyba.
Příklad
Následující příklad ukazuje proměnnou objektu a přístup k vlastnostem.
var x = {
y: {
z: 'Hello'
a: true
}
q: 42
}
output outputZ string = x.y.z
output outputQ int = x.q
Výstup z příkladu:
| Název | Typ | Hodnota |
|---|---|---|
outputZ |
řetězec | "Dobrý den" |
outputQ |
celočíselný | 42 |
Obvykle použijete přístup k vlastnosti s prostředkem nasazeným v souboru Bicep. Následující příklad vytvoří veřejnou IP adresu a pomocí přístupových objektů vlastností vrátí hodnotu z nasazeného prostředku.
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
Další kroky
- Ke spuštění příkladů použijte Azure CLI nebo Azure PowerShell k nasazení souboru Bicep.
- Pokud chcete vytvořit soubor Bicep, přečtěte si článek Rychlý start: Vytvoření souborů Bicep pomocí editoru Visual Studio Code.
- Informace o řešení chyb typu Bicep naleznete v tématu Libovolná funkce pro Bicep.