Wat is Bicep?

Voltooid

Nu uw team begrijpt hoe Azure Resource Manager werkt, besluit u ARM-sjablonen te gebruiken voor het inrichten van resources. U begrijpt dat u ARM-sjablonen op twee verschillende manieren kunt schrijven: met behulp van JSON of bicep. U wilt meer informatie over Bicep-sjablonen zodat u een weloverwogen beslissing kunt nemen over welke taal u wilt gebruiken.

In deze les krijgt u informatie over de bicep-sjabloontaal en de voordelen die het biedt voor het ontwerpen van sjablonen.

Bicep-taal

Bicep is een Resource Manager-sjabloontaal die wordt gebruikt om Azure-resources declaratief te implementeren. Bicep is ontworpen voor een specifiek scenario of domein, waardoor het een domeinspecifieke taal is. Bicep is niet bedoeld om te worden gebruikt als een standaardprogrammeertaal voor het schrijven van toepassingen. Bicep wordt alleen gebruikt om Resource Manager-sjablonen te maken. Bicep is bedoeld om gemakkelijk te begrijpen en eenvoudig te leren, ongeacht uw ervaring met andere programmeertalen. Alle resourcetypen, API-versies en eigenschappen zijn geldig in Bicep-sjablonen.

Notitie

Als u eerder JSON-sjablonen hebt gebruikt, hebt u misschien gemerkt dat Bicep de ervaring voor het maken van sjablonen vereenvoudigt. Het biedt een syntaxis die gemakkelijker te begrijpen is, betere ondersteuning voor modulariteit en herbruikbare code en verbeterde typeveiligheid. Voor het maken van een JSON ARM-sjabloon zijn complexe expressies vereist. Het uiteindelijke resultaat kan uitgebreid zijn.

Voordelen van Bicep

Bicep biedt veel verbeteringen ten opzichte van JSON voor het ontwerpen van sjablonen, waaronder:

  • Eenvoudigere syntaxis: Bicep biedt een eenvoudigere syntaxis voor het schrijven van sjablonen. U kunt rechtstreeks naar parameters en variabelen verwijzen zonder ingewikkelde functies te gebruiken. Tekenreeksinterpolatie wordt gebruikt in plaats van samenvoeging om waarden voor namen en andere items te combineren. U kunt rechtstreeks verwijzen naar de eigenschappen van een resource door de symbolische naam ervan te gebruiken in plaats van complexe referentie-instructies. Deze syntaxisverbeteringen helpen zowel bij het ontwerpen als lezen van Bicep-sjablonen.

  • Modules: U kunt complexe sjabloonimplementaties opsplitsen in kleinere modulebestanden en ernaar verwijzen in een hoofdsjabloon. Deze modules bieden eenvoudiger beheer en meer herbruikbaarheid. U kunt uw modules zelfs delen met uw team.

  • Automatisch afhankelijkheidsbeheer: In de meeste gevallen detecteert Bicep automatisch afhankelijkheden tussen uw resources. Met dit proces verwijdert u een deel van het werk dat betrokken is bij het ontwerpen van sjablonen.

  • Typevalidatie en IntelliSense: De Bicep-extensie voor Visual Studio Code bevat uitgebreide validatie en IntelliSense voor alle API-definities van azure-resourcetypen. Deze functie biedt een eenvoudigere ontwerpervaring.

Bekijk het volgende voorbeeld van een Bicep-sjabloon waarmee een Azure-opslagaccount wordt gedefinieerd. De sjabloon genereert automatisch de naam van het opslagaccount. Na de implementatie wordt de resource-id geretourneerd als uitvoer voor de gebruiker die de sjabloon uitvoert.

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