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 Bicep-filen. Du behöver inte vänta tills verktygen har uppdaterats innan du använder de nya tjänsterna.

  • Enkel syntax: Jämfört med motsvarande JSON-mall är Bicep-filer mer koncisa och lättare att läsa. Bicep kräver inga tidigare kunskaper i 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@2023-04-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 syntaxverifiering.

    Bicep-filredigeringsexempel

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

  • Repeterbara resultat: Distribuera infrastrukturen upprepade gånger under utvecklingslivscykeln och ha förtroende för att dina resurser distribueras på ett konsekvent sätt. Bicep-filer är idempotent, vilket innebär att du kan distribuera samma fil många gånger och få samma resurstyper i samma tillstånd. Du kan utveckla en fil som representerar önskat tillstånd i stället för att utveckla många separata filer som representerar uppdateringar. Följande fil skapar till exempel ett lagringskonto. Om du distribuerar den här mallen och lagringskontot med de angivna egenskaperna redan finns, görs inga ändringar.

    param location string = resourceGroup().location
    
    resource mystore 'Microsoft.Storage/storageAccounts@2023-04-01' = {
      name: 'mystorageaccount'
      location: location
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
    }
    

  • 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 seriedistributioner. Du distribuerar filen via ett kommando i stället för genom 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 resurserna.

  • 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 konsekvensåtgärden för att få en förhandsversion av ändringarna innan du distribuerar Bicep-filen. Med vad händer om ser du vilka resurser som ska skapas, uppdateras eller tas bort och eventuella resursegenskaper som kommer att ändras. Konsekvensåtgärden kontrollerar miljöns aktuella tillstånd 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 ha förtroende för 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 Microsofts support.

Kom igång

Så här kommer du igång med Bicep:

  1. Installera verktygen. Se Konfigurera utvecklings- och distributionsmiljöer för Bicep. Du kan också 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 Dekompilera 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.

Få support

Här följer stegen för att öppna ett supportärende för azure resource manager-mallrelaterade problem:

  1. Öppna Azure Portal.

  2. Välj ikonen Support + Felsökning i det övre högra hörnet.

  3. I Beskriv problemet kortfattat anger du ARM-mall och väljer sedan Gå.

  4. I Vilken tjänst har du problem med? väljer du Portal under Övervakning och hantering och väljer sedan Nästa.

  5. Välj en prenumeration och välj sedan Nästa.

  6. Välj Problem med ARM-mallar och välj sedan Nästa.

    Skärmbild av begäran om stöd för ARM-mallar.

Nästa steg

Kom igång med Snabbstart.

Svar på vanliga frågor finns i Vanliga frågor och svar för Bicep.