Vad är Bicep?

Slutförd

Nu när ditt team förstår hur Azure Resource Manager fungerar bestämmer du dig för att använda ARM-mallar för resursetablering. Du förstår att du kan skriva ARM-mallar på två olika sätt: med hjälp av JSON eller med hjälp av Bicep. Du vill lära dig mer om Bicep-mallar så att du kan fatta ett välgrundat beslut om vilket språk du ska använda.

I den här lektionen får du lära dig mer om Bicep-mallspråket och vilka fördelar det ger för mallredigering.

Bicep-språk

Bicep är ett Resource Manager-mallspråk som används för att deklarativt distribuera Azure-resurser. Bicep är utformat för ett specifikt scenario eller en domän, vilket gör det till ett domänspecifikt språk. Bicep är inte avsett att användas som standardprogrammeringsspråk för att skriva program. Bicep används endast för att skapa Resource Manager-mallar. Bicep är avsett att vara lätt att förstå och enkelt att lära sig, oavsett erfarenhet av andra programmeringsspråk. Alla resurstyper, API-versioner och egenskaper är giltiga i Bicep-mallar.

Kommentar

Om du tidigare har tittat på hur du använder JSON-mallar kanske du har märkt att Bicep förenklar skapandet av mallar. Det ger en syntax som är lättare att förstå, bättre stöd för modularitet och återanvändbar kod och förbättrad typsäkerhet. För att skapa en JSON ARM-mall krävs komplicerade uttryck, och slutresultatet kan vara utförligt.

Fördelar med Bicep

Bicep ger många förbättringar jämfört med JSON för mallredigering, inklusive:

  • Enklare syntax: Bicep ger en enklare syntax för att skriva mallar. Du kan referera till parametrar och variabler direkt, utan att använda komplicerade funktioner. Stränginterpolation används i stället för sammanfogning för att kombinera värden för namn och andra objekt. Du kan referera till egenskaperna för en resurs direkt genom att använda dess symboliska namn i stället för komplexa referensinstruktioner. Dessa syntaxförbättringar hjälper både med redigering och läsning av Bicep-mallar.

  • Moduler: Du kan dela upp komplexa malldistributioner i mindre modulfiler och referera till dem i en huvudmall. Dessa moduler ger enklare hantering och större återanvändning. Du kan till och med dela dina moduler med ditt team.

  • Automatisk beroendehantering: I de flesta fall identifierar Bicep automatiskt beroenden mellan dina resurser. Den här processen tar bort en del av det arbete som ingår i mallredigering.

  • Typverifiering och IntelliSense: Bicep-tillägget för Visual Studio Code har omfattande validering och IntelliSense för alla API-definitioner av Azure-resurstyp. Den här funktionen ger en enklare redigeringsupplevelse.

Ta en titt på följande exempel på en Bicep-mall som definierar ett Azure Storage-konto. Mallen genererar automatiskt namnet på lagringskontot. Efter distributionen returneras resurs-ID:t som utdata till den användare som kör mallen.

param location string = resourceGroup().location
param namePrefix string = 'storage'

var storageAccountName = '${namePrefix}${uniqueString(resourceGroup().id)}'
var storageAccountSku = 'Standard_RAGRS'

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: storageAccountName
  location: location
  kind: 'StorageV2'
  sku: {
    name: storageAccountSku
  }
  properties: {
    accessTier: 'Hot'
    supportsHttpsTrafficOnly: true
  }
}

output storageAccountId string = storageAccount.id