Snabbstart: Skapa Bicep-filer med Visual Studio Code

Den här snabbstarten vägleder dig genom stegen för att skapa en Bicep-fil med Visual Studio Code. Du skapar ett lagringskonto och ett virtuellt nätverk. Du lär dig också hur Bicep-tillägget förenklar utvecklingen genom att tillhandahålla typsäkerhet, syntaxvalidering och automatisk komplettering.

Liknande redigeringsupplevelse stöds också i Visual Studio. Se Snabbstart: Skapa Bicep-filer med Visual Studio.

Förutsättningar

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Information om hur du konfigurerar din miljö för Bicep-utveckling finns i Installera Bicep-verktyg. När du har slutfört dessa steg har du Visual Studio Code och Bicep-tillägget. Du har också antingen den senaste Azure CLI-modulen eller den senaste Azure PowerShell-modulen.

Lägga till resursfragment

VS Code med Bicep-tillägget förenklar utvecklingen genom att tillhandahålla fördefinierade kodfragment. I den här snabbstarten lägger du till ett kodfragment som skapar ett virtuellt nätverk.

Starta Visual Studio Code och skapa en ny fil med namnet main.bicep.

I main.bicep skriver du vnet och väljer sedan res-vnet i listan och trycker sedan på [TAB] eller [RETUR].

Screenshot of adding snippet for virtual network.

Dricks

Om du inte ser dessa intellisense-alternativ i VS Code kontrollerar du att du har installerat Bicep-tillägget enligt kraven. Om du har installerat tillägget ger du Bicep-språktjänsten lite tid att starta när du har öppnat Bicep-filen. Det börjar vanligtvis snabbt, men du har intellisense-alternativ förrän det börjar. Ett meddelande i det nedre högra hörnet anger att tjänsten startas. När meddelandet försvinner körs tjänsten.

Bicep-filen innehåller nu följande kod:

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'name'
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

I det här kodfragmentet hittar du alla nödvändiga värden för att definiera ett virtuellt nätverk. Du kanske ser två lockiga understrykningar. En gul en anger en varning relaterad till en inaktuell API-version, medan en röd lockig understrykning signalerar ett fel som orsakas av en saknad parameterdefinition.

Ta bort @2019-11-01och ersätt det med @. Välj den senaste API-versionen.

Screenshot of updating API version.

Du åtgärdar det saknade parameterdefinitionsfelet i nästa avsnitt.

Du kan också ändra den här koden så att den uppfyller dina krav. Är till exempel name inte ett bra namn för det virtuella nätverket. Ändra egenskapen name till examplevnet.

name: 'exampleVNet'

Lägga till parameter

Kodfragmentet som du lade till i det senaste avsnittet missar en parameterdefinition.

Lägg till överst i filen:

param location

Observera att intellisense erbjuder de datatyper som är tillgängliga för parametern när du lägger till ett blanksteg efter plats. Välj sträng.

Screenshot of adding string type to parameter.

Ge parametern ett standardvärde:

param location string = resourceGroup().location

Mer information om funktionen som används i standardvärdet finns i resourceGroup().

Lägg till ytterligare en parameter för lagringskontonamnet med ett standardvärde:

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Mer information finns i Interpolation och uniqueString().

Den här parametern fungerar bra, men lagringskonton har gränser för namnets längd. Namnet får innehålla minst tre tecken och högst 24 tecken. Du kan ange dessa krav genom att lägga till dekoratörer i parametern.

Lägg till en rad ovanför parametern och skriv @. Du ser de tillgängliga dekoratörerna. Observera att det finns dekoratörer för både minLength och maxLength.

Screenshot of adding decorators to parameter.

Lägg till båda dekoratörerna och ange teckengränserna:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Du kan också lägga till en beskrivning för parametern. Inkludera information som hjälper personer som distribuerar Bicep-filen att förstå värdet som ska anges.

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Parametrarna är redo att användas.

Lägg till resurs

I stället för att använda ett kodfragment för att definiera lagringskontot använder du intellisense för att ange värdena. Intellisense gör det här steget enklare än att behöva skriva värdena manuellt.

Använd nyckelordet för resource att definiera en resurs. Under det virtuella nätverket skriver du resursexempelLagring:

resource exampleStorage

exampleStorage är ett symboliskt namn för den resurs som du distribuerar. Du kan använda det här namnet för att referera till resursen i andra delar av Bicep-filen.

När du lägger till ett blanksteg efter det symboliska namnet visas en lista med resurstyper. Fortsätt att skriva storageacc tills du kan välja det bland de tillgängliga alternativen.

Screenshot of selecting storage accounts for resource type.

När du har valt Microsoft.Storage/storageAccounts visas de tillgängliga API-versionerna. Välj den senaste versionen. För följande skärmbild är det 2023-01-01.

Screenshot of select API version for resource type.

Efter den enkla offerten för resurstypen lägger du till = och ett blanksteg. Du får alternativ för att lägga till egenskaper i resursen. Välj obligatoriska egenskaper.

Screenshot of adding required properties.

Det här alternativet lägger till alla egenskaper för den resurstyp som krävs för distributionen. När du har valt det här alternativet har ditt lagringskonto följande egenskaper:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-01-01' =  {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Nästan klart. Ange bara värden för dessa egenskaper.

Återigen hjälper intellisense dig. Ange name till storageAccountName, som är parametern som innehåller ett namn på lagringskontot. För locationanger du den till location, vilket är en parameter som du skapade tidigare. När du lägger till sku.name och kindvisar intellisense giltiga alternativ.

När du är klar har du:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'exampleVNet'
  location: resourceGroup().location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Mer information om Bicep-syntaxen finns i Bicep-strukturen.

Visualisera resurser

Du kan visa en representation av resurserna i filen.

I det övre högra hörnet väljer du visualiserarknappen för att öppna Bicep Visualizer.

Screenshot of Bicep Visualizer.

Visualiseraren visar de resurser som definierats i Bicep-filen med resursberoendeinformationen. De två resurser som definierats i den här snabbstarten har ingen beroenderelation, så du ser ingen koppling mellan de två resurserna.

Screenshot of Bicep Visualizer diagram.

Distribuera Bicep-filen

  1. Högerklicka på Bicep-filen i VS Code och välj sedan Distribuera Bicep-filen.

    Screenshot of Deploy Bicep file.

  2. I textrutan Ange namn för distribution skriver du deployStorageAndVNet och trycker sedan på [RETUR].

  3. I listrutan Välj resursgrupp överst väljer du Skapa ny resursgrupp.

  4. Ange exampleRG som resursgruppsnamn och tryck sedan på [RETUR].

  5. Välj en plats för resursgruppen, välj USA , centrala eller valfri plats och tryck sedan på [RETUR].

  6. Välj Ingen i Välj en parameterfil.

    Screenshot of Select parameter file.

Det tar en stund att skapa resurserna. Mer information finns i Distribuera Bicep-filer med Visual Studio Code.

Du kan också distribuera Bicep-filen med hjälp av Azure CLI eller Azure PowerShell:

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename

När distributionen är klar bör du se ett meddelande som anger att distributionen lyckades.

Rensa resurser

När Azure-resurserna inte längre behövs använder du Azure CLI- eller Azure PowerShell-modulen för att ta bort snabbstartsresursgruppen.

az group delete --name exampleRG

Nästa steg