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
- Azure-abonnement. Als u geen abonnement op Azure hebt, maakt u een gratis account voordat u begint.
- Visual Studio versie 17.3.0 preview 3 of hoger. Zie Visual Studio Preview.
- Visual Studio Bicep-extensie. Zie Visual Studio Marketplace.
- Voor de implementatie van Bicep-bestanden is de nieuwste Azure CLI of de meest recente Azure PowerShell-module vereist.
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].
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@2023-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.
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.
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.
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.
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.
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@2023-04-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 location
voor 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@2023-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@2023-04-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