Operátory příslušenství Bicep
Operátory přistupují k podřízeným prostředkům, vlastnostem objektů a prvkům v poli. K použití některých funkcí můžete použít také přistupovací objekt vlastnosti.
Operátor | Name |
---|---|
[] |
Přístup k indexu |
. |
Příslušenství funkce |
:: |
Vnořený přístup k prostředkům |
. |
Vlastnost – příslušenství |
Přístup k indexu
array[integerIndex]
object['stringIndex']
Pomocí přístupového objektu indexu získejte buď prvek z pole, nebo vlastnost 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'
'Fabrikan'
]
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" |
Příslušenství funkce
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@2023-02-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řístup k prostředkům
parentResource::nestedResource
Vnořený prostředek je prostředek, který je deklarován v rámci jiného prostředku. Přístup k vnořeným prostředkům ::
použijte k přístupu 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 jenom se symbolickým názvem. Přístup k vnořenému prostředku stačí použít pouze při odkazování na vnořený prostředek mimo nadřazený prostředek.
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@2023-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
Vlastnost – příslušenství
objectName.propertyName
Pro přístup k vlastnostem objektu použijte přístup k vlastnostem objektu. 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í vlastnosti access u výrazu, který není objektem, se zobrazí chyba.
Příklad
Následující příklad ukazuje proměnnou objektu a postup přístupu 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 |
integer | 42 |
Obvykle používáte vlastnost accessor s prostředkem nasazeným v souboru Bicep. Následující příklad vytvoří veřejnou IP adresu a použije přístupové objekty vlastností k vrácení hodnoty z nasazeného prostředku.
resource publicIp 'Microsoft.Network/publicIPAddresses@2022-11-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
- Pokud chcete spustit příklady, nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShell.
- Pokud chcete vytvořit soubor Bicep, přečtěte si téma Rychlý start: Vytváření souborů Bicep pomocí editoru Visual Studio Code.
- Informace o řešení chyb typu Bicep najdete v tématu Libovolná funkce pro Bicep.