I den här artikeln beskrivs strukturen och syntaxen för en Bicep-fil. Den visar de olika avsnitten i filen och de egenskaper som är tillgängliga i dessa avsnitt.
Bicep är ett deklarativt språk, vilket innebär att elementen kan visas i valfri ordning. Till skillnad från imperativa språk påverkar inte ordningen på element hur distributionen bearbetas.
I följande exempel visas en implementering av dessa element.
Bicep
metadatadescription = 'Creates a storage account and a web app'
@description('The prefix to use for the storage account name.')
@minLength(3)
@maxLength(11)paramstoragePrefixstringparamstorageSKUstring = 'Standard_LRS'paramlocationstring = resourceGroup().locationvaruniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'resourcestg'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: uniqueStorageNamelocation: locationsku: {
name: storageSKU
}
kind: 'StorageV2'properties: {
supportsHttpsTrafficOnly: true
}
}
modulewebModule'./webApp.bicep' = {
name: 'webDeploy'params: {
skuName: 'S1'location: location
}
}
Metadata
Metadata i Bicep är ett icke-typat värde som kan ingå i Bicep-filer. Det gör att du kan ange ytterligare information om dina Bicep-filer, inklusive information som dess namn, beskrivning, författare, skapandedatum med mera.
Målomfång
Som standard är målomfånget inställt på resourceGroup. Om du distribuerar på resursgruppsnivå behöver du inte ange målomfånget i Bicep-filen.
Använd den här dekoratören för att se till att användaren tillhandahåller rätt värden. Den här dekoratören är endast tillåten för param instruktioner. Om du vill deklarera att en egenskap måste vara en av en uppsättning fördefinierade värden i en eller output -typeinstruktionen använder du syntax för unionstyp. Union-typsyntax kan också användas i param -instruktioner.
Höj BCP089 från en varning till ett fel när ett egenskapsnamn för en användningsdefinierad datatyp sannolikt är ett skrivfel. Mer information finns i Höja felnivån.
Markerar parametern som säker. Värdet för en säker parameter sparas inte i distributionshistoriken och loggas inte. Mer information finns i Skydda strängar och objekt.
Parametrar
Använd parametrar för värden som måste variera för olika distributioner. Du kan definiera ett standardvärde för parametern som används om inget värde anges under distributionen.
Du kan till exempel lägga till en SKU-parameter för att ange olika storlekar för en resurs. Du kan skicka in olika värden beroende på om du distribuerar för att testa eller producera.
Bicep
paramstorageSKUstring = 'Standard_LRS'
Parametern är tillgänglig för användning i Bicep-filen.
Bicep
sku: {
name: storageSKU
}
Du kan lägga till en eller flera dekoratörer för varje parameter. Mer information finns i Använda dekoratörer.
Du kan göra Bicep-filen mer läsbar genom att kapsla in komplexa uttryck i en variabel. Du kan till exempel lägga till en variabel för ett resursnamn som skapas genom att sammanfoga flera värden.
I Bicep-filen kan du skapa dina egna funktioner utöver att använda standardfunktionerna för Bicep som är automatiskt tillgängliga i Bicep-filerna. Skapa dina egna funktioner när du har komplicerade uttryck som används upprepade gånger i Bicep-filerna.
Använd nyckelordet resource för att definiera en resurs som ska distribueras. Resursdeklarationen innehåller ett symboliskt namn för resursen. Du använder det här symboliska namnet i andra delar av Bicep-filen för att hämta ett värde från resursen.
Resursdeklarationen innehåller resurstypen och API-versionen. I resursdeklarationens brödtext inkluderar du egenskaper som är specifika för resurstypen.
Vissa resurser har en överordnad/underordnad relation. Du kan definiera en underordnad resurs antingen i den överordnade resursen eller utanför den.
I följande exempel visas hur du definierar en underordnad resurs i en överordnad resurs. Den innehåller ett lagringskonto med en underordnad resurs (filtjänst) som definieras i lagringskontot. Filtjänsten har också en underordnad resurs (resurs) som definieras i den.
I nästa exempel visas hur du definierar en underordnad resurs utanför den överordnade resursen. Du använder den överordnade egenskapen för att identifiera en överordnad/underordnad relation. Samma tre resurser definieras.
Med moduler kan du återanvända kod från en Bicep-fil i andra Bicep-filer. I moduldeklarationen länkar du till filen för återanvändning. När du distribuerar Bicep-filen distribueras även resurserna i modulen.
Med det symboliska namnet kan du referera till modulen från någon annanstans i filen. Du kan till exempel hämta ett utdatavärde från en modul med hjälp av det symboliska namnet och namnet på utdatavärdet.
Du kan lägga till en eller flera dekoratörer för varje modul. Mer information finns i Använda dekoratörer.
Använd utdata för att returnera värden från distributionen. Vanligtvis returnerar du ett värde från en distribuerad resurs när du behöver återanvända det värdet för en annan åtgärd.
Du kan lägga till en resurs eller modul i din Bicep-fil som är villkorligt distribuerad. Under distributionen utvärderas villkoret och resultatet avgör om resursen eller modulen distribueras. Använd uttrycket if för att definiera en villkorsstyrd distribution.
Bicep
paramdeployZoneboolresourcednsZone'Microsoft.Network/dnsZones@2023-07-01-preview' = if (deployZone) {
name: 'myZone'location: 'global'
}
Används // för enradskommentarer eller /* ... */ för flerradskommentarer
I följande exempel visas en kommentar med en rad.
Bicep
// This is your primary NIC.resourcenic1'Microsoft.Network/networkInterfaces@2023-11-01' = {
...
}
I följande exempel visas en kommentar med flera rader.
Bicep
/*
This Bicep file assumes the key vault already exists and
is in same subscription and resource group as the deployment.
*/paramexistingKeyVaultNamestring
Flerradssträngar
Du kan dela upp en sträng i flera rader. Använd tre enkla citattecken ''' för att starta och avsluta strängen med flera rader.
Tecken i flerradssträngen hanteras som de är. Escape-tecken är onödiga. Du kan inte ta med ''' i flerradssträngen. Stränginterpolering stöds inte för närvarande.
Du kan antingen starta strängen direkt efter öppningen ''' eller inkludera en ny rad. I båda fallen innehåller den resulterande strängen inte en ny rad. Beroende på radsluten i Bicep-filen tolkas nya rader som \r\n eller \n.
I följande exempel visas en sträng med flera rader.
Bicep
varstringVar = '''
this is multi-line
string with formatting
preserved.
'''
Föregående exempel motsvarar följande JSON.
JSON
"variables": {
"stringVar": "this is multi-line\r\n string with formatting\r\n preserved.\r\n"
}
Vissa Bicep-funktioner kräver en motsvarande ändring av mellanliggande språk (Azure Resource Manager JSON-mallar). Vi meddelar dessa funktioner som tillgängliga när alla nödvändiga uppdateringar har distribuerats till globala Azure. Om du använder en annan miljö, till exempel Azure Stack, kan det uppstå en fördröjning i tillgängligheten för funktionen. Bicep-funktionen är endast tillgänglig när det mellanliggande språket också har uppdaterats i den miljön.
Nästa steg
En introduktion till Bicep finns i Vad är Bicep?. Information om Bicep-datatyper finns i Datatyper.
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.