Quickstart: Bicep-bestanden maken met Visual Studio

In deze quickstart wordt u begeleid bij de stappen voor het maken van een Bicep-bestand met Visual Studio. U maakt een opslagaccount en een virtueel netwerk. U leert ook hoe de Bicep-extensie de ontwikkeling vereenvoudigt door typeveiligheid, syntaxisvalidatie en automatisch aanvullen te bieden.

Vergelijkbare ontwerpervaring wordt ook ondersteund in Visual Studio Code. Zie Quickstart: Bicep-bestanden maken met Visual Studio Code.

Vereisten

Resourcefragment toevoegen

Start Visual Studio en maak een nieuw bestand met de naam main.bicep.

Visual Studio met de Bicep-extensie vereenvoudigt de ontwikkeling door vooraf gedefinieerde fragmenten te bieden. In deze quickstart voegt u een fragment toe waarmee een virtueel netwerk wordt gemaakt.

Typ vnet in main.bicep. Selecteer res-vnet in de lijst en druk vervolgens op [TAB] of [ENTER].

Schermopname van het toevoegen van een fragment voor een virtueel netwerk.

Tip

Als u deze IntelliSense-opties niet ziet in Visual Studio, controleert u of u de Bicep-extensie hebt geïnstalleerd zoals opgegeven in Vereisten. Als u de extensie hebt geïnstalleerd, geeft u de Bicep-taalservice enige tijd om te starten nadat u uw Bicep-bestand hebt geopend. Het wordt meestal snel gestart, maar u hebt geen IntelliSense-opties totdat het wordt gestart.

Uw Bicep-bestand bevat nu de volgende code:

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'
        }
      }
    ]
  }
}

Dit fragment bevat alle waarden die u nodig hebt om een virtueel netwerk te definiëren. U kunt deze code echter aanpassen aan uw vereisten. Is bijvoorbeeld name geen goede naam voor het virtuele netwerk. Wijzig de name eigenschap in exampleVnet.

name: 'exampleVnet'

U ziet dat de locatie een rode, gekrulde onderstreping heeft. Dit duidt op een probleem. Beweeg de muisaanwijzer over de locatie. Het foutbericht is: de naam 'locatie' bestaat niet in de huidige context. In de volgende sectie maken we een locatieparameter.

Parameters toevoegen

Nu voegen we twee parameters toe voor de naam van het opslagaccount en de locatie. Voeg bovenaan het bestand het volgende toe:

param storageName

Wanneer u een spatie toevoegt na storageName, ziet u dat intelliSense de gegevenstypen biedt die beschikbaar zijn voor de parameter. Selecteer tekenreeks.

Schermopname van het toevoegen van tekenreekstype aan parameter.

U hebt de volgende parameter:

param storageName string

Deze parameter werkt prima, maar opslagaccounts hebben limieten voor de lengte van de naam. De naam moet uit ten minste 3 en niet meer dan 24 tekens bestaan. U kunt deze vereisten opgeven door decorators toe te voegen aan de parameter .

Voeg een regel toe boven de parameter en typ @. U ziet de beschikbare decorators. U ziet dat er decorators zijn voor zowel minLength als maxLength.

Schermopname van het toevoegen van decorators aan parameter.

Voeg beide decorators toe en geef de tekenlimieten op, zoals hieronder wordt weergegeven:

@minLength(3)
@maxLength(24)
param storageName string

U kunt ook een beschrijving voor de parameter toevoegen. Neem informatie op waarmee mensen die het Bicep-bestand implementeren, inzicht hebben in de waarde die moet worden geboden.

@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 storageName string

De parameter naam van het opslagaccount is klaar voor gebruik.

Voeg nog een locatieparameter toe:

param location string = resourceGroup().location

Resource toevoegen

In plaats van een fragment te gebruiken om het opslagaccount te definiëren, gebruiken we intellisense om de waarden in te stellen. IntelliSense maakt deze stap veel eenvoudiger dan dat u de waarden handmatig moet typen.

Gebruik het resource trefwoord om een resource te definiëren. Typ onder het virtuele netwerk resourcevoorbeeldOpslag:

resource exampleStorage

exampleStorage is een symbolische naam voor de resource die u implementeert. U kunt deze naam gebruiken om te verwijzen naar de resource in andere delen van het Bicep-bestand.

Wanneer u een spatie toevoegt achter de symbolische naam, wordt een lijst met resourcetypen weergegeven. Ga door met het typen van opslag totdat u deze kunt selecteren uit de beschikbare opties.

Schermopname van het selecteren van opslagaccounts voor resourcetype.

Nadat u Microsoft.Storage/storageAccounts hebt geselecteerd, ziet u de beschikbare API-versies. Selecteer 2021-09-01 of de nieuwste API-versie . U wordt aangeraden de nieuwste API-versie te gebruiken.

Schermopname van het selecteren van de API-versie voor resourcetype.

Voeg na de enkele aanhalingsteken voor het resourcetype een spatie en toe = . U krijgt opties te zien voor het toevoegen van eigenschappen aan de resource. Selecteer vereiste eigenschappen.

Schermopname van het toevoegen van vereiste eigenschappen.

Met deze optie worden alle eigenschappen voor het resourcetype toegevoegd die vereist zijn voor de implementatie. Nadat u deze optie hebt geselecteerd, heeft uw opslagaccount de volgende eigenschappen:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-09-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

De code bevat vier tijdelijke aanduidingen. Gebruik [TAB] om deze te doorlopen en voer de waarden in. Nogmaals, intelliSense helpt u. Stel in name op storageName. Dit is de parameter die een naam voor het opslagaccount bevat. Stel locationvoor in op location. Wanneer u een SKU-naam en -soort toevoegt, worden intelliSense de geldige opties weergegeven.

Wanneer u klaar bent, hebt u het volgende:

@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 storageName string
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: storageName
  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'
        }
      }
    ]
  }
}

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

Zie Bicep-structuur voor meer informatie over de Bicep-syntaxis.

Het Bicep-bestand implementeren

Implementatie van Bicep-bestanden kan nog niet worden uitgevoerd vanuit Visual Studio. U kunt het Bicep-bestand implementeren met behulp van Azure CLI of Azure PowerShell:

az group create --name exampleRG --location eastus

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

Wanneer de implementatie is voltooid, ziet u een bericht dat aangeeft dat de implementatie is voltooid.

Resources opschonen

Wanneer de Azure-resources niet meer nodig zijn, gebruikt u de Azure CLI of Azure PowerShell-module om de quickstart-resourcegroep te verwijderen.

az group delete --name exampleRG

Volgende stappen