Schnellstart: Erstellen von Bicep-Dateien mit Visual Studio
Dieser Schnellstart führt Sie durch die Schritte zum Erstellen einer Bicep-Datei mit Visual Studio. Sie erstellen ein Speicherkonto und ein virtuelles Netzwerk. Außerdem erfahren Sie, wie die Bicep-Erweiterung die Entwicklung vereinfacht, indem Sie die Typsicherheit, Syntaxvalidierung und das Autovervollständigen bereitstellt.
In Visual Studio Code wird auch eine ähnliche Dokumenterstellungsumgebung unterstützt. Siehe Schnellstart: Erstellen von Bicep-Dateien mit Visual Studio Code
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
- Visual Studio-Version 17.3.0, Vorschauversion 3 oder neuer. Weitere Informationen finden Sie unter Visual Studio 2022-Preview.
- Bicep-Erweiterung für Visual Studio. Siehe Visual Studio Marketplace
- Für die Bereitstellung von Bicep-Dateien ist die neueste Version der Azure CLI oder das neueste Azure PowerShell-Modul erforderlich.
Hinzufügen eines Ressourcenausschnitts
Starten Sie Visual Studio, und erstellen Sie eine neue Datei mit dem Namen main.bicep.
Visual Studio mit der Bicep-Erweiterung vereinfacht die Entwicklung durch die Bereitstellung vordefinierter Codeausschnitte. In dieser Schnellstartanleitung fügen Sie einen Codeausschnitt hinzu, mit dem ein virtuelles Netzwerk erstellt wird.
Geben Sie vnet in main.bicep ein. Wählen Sie res-vnet aus der Liste aus, und drücken Sie dann die TAB- oder EINGABETASTE.
Tipp
Werden diese IntelliSense-Optionen in Visual Studio nicht angezeigt, vergewissern Sie sich, dass Sie die Bicep-Erweiterung wie unter Voraussetzungen angegeben installiert haben. Wenn Sie die Erweiterung installiert haben, warten Sie nach dem Öffnen der Bicep-Datei einige Zeit, bis der Bicep-Sprachdienst gestartet wird. Er wird in der Regel schnell gestartet, die IntelliSense-Optionen werden aber erst nach dem Start angezeigt.
Ihre Bicep-Datei enthält nun den folgenden 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'
}
}
]
}
}
Dieser Codeausschnitt enthält alle Werte, die Sie zum Definieren eines virtuellen Netzwerks benötigen. Sie können diesen Code jedoch an ihre Anforderungen anpassen. Beispielsweise ist name
kein hervorragender Name für das virtuelle Netzwerk. Ändern Sie die name
Eigenschaft in exampleVnet
.
name: 'exampleVnet'
Beachten Sie, dass location rot unterringelt ist. Dies weist auf ein Problem hin. Zeigen Sie mit Ihrem Cursor auf location. Die Fehlermeldung lautet: Der Name „location“ ist im aktuellen Kontext nicht vorhanden. Wir erstellen im nächsten Abschnitt einen location-Parameter.
Hinzufügen von Parametern
Nun fügen wir zwei Parameter für den Namen des Speicherkontos und den Standort hinzu. Fügen Sie am Anfang der Datei Folgendes hinzu:
param storageName
Wenn Sie nach storageNameeinen Leerzeichen hinzufügen, beachten Sie, dass IntelliSense die Datentypen anbietet, die für den Parameter verfügbar sind. Wählen Sie Zeichenfolge aus.
Sie haben den folgenden Parameter:
param storageName string
Dieser Parameter funktioniert einwandfrei, aber für die Speicherkonten gelten Grenzwerte für die Länge des Namens. Der Name muss mindesten 3 und darf höchsten 24 Zeichen lang sein. Sie können diese Anforderungen angeben, indem Sie dem Parameter Decorator-Elemente hinzufügen.
Fügen Sie eine Zeile über dem Parameter hinzu, und geben Sie @ ein. Die verfügbaren Decorators werden ihnen angezeigt. Beachten Sie, dass Decorator-Elemente sowohl für minLength als auch für maxLength verfügbar sind.
Fügen Sie beide Decorator-Elemente hinzu und geben Sie die Zeichengrenzwerte an, wie unten gezeigt:
@minLength(3)
@maxLength(24)
param storageName string
Sie können auch eine Beschreibung für den Parameter hinzufügen. Fügen Sie Informationen ein, die es Personen, die die Bicep-Datei bereitstellen, helfen, den bereitzustellenden Wert zu verstehen.
@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
Der Parameter für den Namen des Speicherkontos kann nun verwendet werden.
Fügen Sie einen weiteren Standortparameter hinzu:
param location string = resourceGroup().location
Ressource hinzufügen
Anstatt einen Codeausschnitt zum Definieren des Speicherkontos zu verwenden, verwenden wir IntelliSense, um die Werte festzulegen. IntelliSense vereinfacht diesen Schritt erheblich, anstatt die Werte manuell eingeben zu müssen.
Verwenden Sie das Schlüsselwort resource
, um eine bereitzustellende Ressource zu definieren. Geben Sie unterhalb Ihres virtuellen Netzwerks resource exampleStorage ein:
resource exampleStorage
exampleStorage ist ein symbolischer Name für die Ressource, die Sie bereitstellen. Sie können diesen Namen verwenden, um in anderen Teilen der Bicep-Datei auf die Ressource zu verweisen.
Wenn Sie nach dem symbolischen Namen ein Leerzeichen hinzufügen, wird eine Liste der Ressourcentypen angezeigt. Fahren Sie mit der Eingabe des Worts Speicher fort, bis Sie ihn aus den verfügbaren Optionen auswählen können.
Nachdem Sie Microsoft.Storage/storageAccountsausgewählt haben, werden Ihnen die verfügbaren API-Versionen angezeigt. Wählen Sie 2021-09-01 oder die neueste API-Version aus. Wir empfehlen die Verwendung der neuesten API-Version.
Fügen Sie nach dem einfachen Anführungszeichen für den Ressourcentyp =
und ein Leerzeichen hinzu. Ihnen werden Optionen zum Hinzufügen von Eigenschaften zu der Ressource angezeigt. Wählen Sie dieerforderlichen Eigenschaften aus.
Diese Option fügt alle Eigenschaften für den Ressourcentyp hinzu, die für die Bereitstellung erforderlich sind. Nachdem Sie diese Option ausgewählt haben, verfügt Ihr Speicherkonto über die folgenden Eigenschaften:
resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 1
location: 2
sku: {
name: 3
}
kind: 4
}
Es gibt vier Platzhalter im Code. Verwenden Sie die [TAB-TASTE], um sie durchzugehen, und geben Sie die Werte ein. Auch hier hilft Ihnen IntelliSense weiter. Legen Sie name
auf storageName fest. Dabei handelt es sich um den Parameter, der einen Namen für das Speicherkonto enthält. Legen Sie hierfür location
auf location
fest. Beim Hinzufügen von einem SKU-Name und einer SKU-Art stellt IntelliSense die gültigen Optionen zur Verfügung.
Wenn Sie fertig sind, haben Sie:
@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'
}
Weitere Informationen zur Bicep-Syntax finden Sie unter Bicep-Struktur.
Bereitstellen der Bicep-Datei
Die Bereitstellung von Bicep-Dateien kann noch nicht über Visual Studio ausgeführt werden. Sie können die Bicep-Datei auch mithilfe der Azure CLI oder von Azure PowerShell bereitstellen:
az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageName=uniquename
Nach Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.
Bereinigen von Ressourcen
Wenn Sie die Azure-Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe der Schnellstartanleitung mithilfe der Azure-Befehlszeilenschnittstelle oder des Azure PowerShell-Moduls.
az group delete --name exampleRG