Vad är Bicep?

Bicep är ett domänspecifikt språk (DSL) som använder deklarativ syntax för att distribuera Azure-resurser. I en Bicep-fil definierar du den infrastruktur som du vill distribuera till Azure och använder sedan filen under hela utvecklingslivscykeln för att distribuera infrastrukturen upprepade gånger. Dina resurser distribueras på ett konsekvent sätt.

Bicep ger koncis syntax, tillförlitlig typsäkerhet och stöd för återanvändning av kod. Bicep erbjuder en förstklassig redigeringsupplevelse för dina infrastruktur-som-kod-lösningar i Azure.

Fördelar med Bicep

Bicep ger följande fördelar:

  • Stöd för alla resurstyper och API-versioner: Bicep stöder omedelbart alla förhandsversioner och GA-versioner för Azure-tjänster. Så snart en resursprovider introducerar nya resurstyper och API-versioner kan du använda dem i din Bicep-fil. Du behöver inte vänta på att verktygen ska uppdateras innan du använder de nya tjänsterna.

  • Enkel syntax: Jämfört med motsvarande JSON-mall är Bicep-filer mer koncisa och enklare att läsa. Bicep kräver ingen tidigare kunskap om programmeringsspråk. Bicep-syntaxen är deklarativ och anger vilka resurser och resursegenskaper du vill distribuera.

    I följande exempel visas skillnaden mellan en Bicep-fil och motsvarande JSON-mall. Båda exemplen distribuerar ett lagringskonto.

    param location string = resourceGroup().location
    param storageAccountName string = 'toylaunch${uniqueString(resourceGroup().id)}'
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2021-06-01' = {
      name: storageAccountName
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

  • Redigeringsupplevelse: När du använder Bicep-tillägget för VS Code för att skapa dina Bicep-filer får du en förstklassig redigeringsupplevelse. Redigeraren ger omfattande typsäkerhet, intellisense och syntaxvalidering.

    Bicep-filredigeringsexempel

    Du kan också skapa Bicep-filer i Visual Studio med Bicep-tillägget för Visual Studio.

  • Upprepningsbara resultat: Distribuera infrastrukturen upprepade gånger under utvecklingslivscykeln och se till att dina resurser distribueras på ett konsekvent sätt. Bicep-filer är idempotent, vilket innebär att du kan distribuera samma fil flera gånger och få samma resurstyper i samma tillstånd. Du kan utveckla en fil som representerar det önskade tillståndet i stället för att utveckla många separata filer som representerar uppdateringar.

  • Orkestrering: Du behöver inte bekymra dig om komplexiteten i beställningsåtgärder. Resource Manager samordnar distributionen av beroende resurser så att de skapas i rätt ordning. När det är möjligt distribuerar Resource Manager resurser parallellt så att dina distributioner slutförs snabbare än seriell distribution. Du distribuerar filen med ett kommando i stället för flera imperativa kommandon.

    Jämförelse av Bicep-distribution

  • Modularitet: Du kan dela upp Bicep-koden i hanterbara delar med hjälp av moduler. Modulen distribuerar en uppsättning relaterade resurser. Med moduler kan du återanvända kod och förenkla utvecklingen. Lägg till modulen i en Bicep-fil när du behöver distribuera dessa resurser.

  • Integrering med Azure-tjänster: Bicep är integrerat med Azure-tjänster som Azure Policy, mallspecifikationer och skisser.

  • Förhandsgranska ändringar: Du kan använda konsekvensgranskningsåtgärden för att få en förhandsgranskning av ändringar innan du distribuerar Bicep-filen. Med what-if ser du vilka resurser som ska skapas, uppdateras eller tas bort samt eventuella resursegenskaper som kommer att ändras. Konsekvensåtgärden kontrollerar det aktuella tillståndet för din miljö och eliminerar behovet av att hantera tillstånd.

  • Inga tillstånds- eller tillståndsfiler att hantera: Alla tillstånd lagras i Azure. Användare kan samarbeta och vara säker på att deras uppdateringar hanteras som förväntat.

  • Ingen kostnad och öppen källkod: Bicep är helt gratis. Du behöver inte betala för premiumfunktioner. Det stöds också av Microsoft Support.

Kom igång

Så här börjar du med Bicep:

  1. Installera verktygen. Se Konfigurera utvecklings- och distributionsmiljöer för Bicep. Eller så kan du använda VS Code Devcontainer/Codespaces-lagringsplatsen för att hämta en förkonfigurerad redigeringsmiljö.
  2. Slutför snabbstarten och Learn-modulerna för Bicep.

Information om hur du dekompilerar en befintlig ARM-mall till Bicep finns i Decompiling ARM template JSON to Bicep (Dela upp ARM-mallens JSON till Bicep). Du kan använda Bicep Playground för att visa Bicep och motsvarande JSON sida vid sida.

Mer information om de resurser som är tillgängliga i din Bicep-fil finns i Bicep-resursreferens

Bicep-exempel finns på Bicep GitHub-lagringsplatsen

Om språket

Bicep är inte avsett som ett allmänt programmeringsspråk för att skriva program. En Bicep-fil deklarerar Azure-resurser och resursegenskaper utan att skriva en sekvens med programmeringskommandon för att skapa resurser.

Information om hur du spårar status för Bicep-arbetet finns i Bicep-projektlagringsplatsen.

Mer information om Bicep finns i följande video.

Du kan använda Bicep i stället för JSON för att utveckla dina Azure Resource Manager-mallar (ARM-mallar). JSON-syntaxen för att skapa en ARM-mall kan vara utförlig och kräva komplicerade uttryck. Bicep-syntaxen minskar komplexiteten och förbättrar utvecklingsupplevelsen. Bicep är en transparent abstraktion över ARM-mallens JSON och förlorar inte någon av JSON-mallfunktionerna. Under distributionen konverterar Bicep CLI en Bicep-fil till ARM-mallens JSON.

Resurstyper, API-versioner och egenskaper som är giltiga i en ARM-mall är giltiga i en Bicep-fil.

Bicep erbjuder en enklare och mer koncis syntax jämfört med motsvarande JSON. Du använder inte hakparenteserade [...]uttryck . I stället anropar du funktioner direkt och hämtar värden från parametrar och variabler. Du ger varje distribuerad resurs ett symboliskt namn, vilket gör det enkelt att referera till resursen i mallen.

En fullständig jämförelse av syntaxen finns i Jämföra JSON och Bicep för mallar.

Bicep hanterar automatiskt beroenden mellan resurser. Du kan undvika att ange dependsOn när det symboliska namnet på en resurs används i en annan resursdeklaration.

Strukturen för Bicep-filen är mer flexibel än JSON-mallen. Du kan deklarera parametrar, variabler och utdata var som helst i filen. I JSON måste du deklarera alla parametrar, variabler och utdata i motsvarande avsnitt i mallen.

Nästa steg

Kom igång med snabbstarten.

Svar på vanliga frågor finns i Vanliga frågor och svar om Bicep.