---
title: "Azure Bicep: Einstieg und Leitfaden | Varonis"
description: Azure Bicep ist Microsofts neue Infrastructure-as-Code-Sprache für die Bereitstellung von Azure-Ressourcen. Erfahren Sie mehr über diese neue Sprache und über den Einstieg darin.
---

[Varonis Blog | Alles zum Thema Datensicherheit ](https://www.varonis.com/de/blog)

# [Azure Bicep: Einstieg und Leitfaden | Varonis](https://www.varonis.com/de/blog/azure-bicep)

 Geschrieben von [Jeff Brown](https://www.varonis.com/de/blog/author/jeff-brown) | Sep 23, 2021 4:00:00 AM

Stellen Sie Ressourcen auf Azure bereit und versuchen Sie dabei, Vorlagen für den Azure Resource Manager (ARM) zu verwenden? Finden Sie die JSON-Syntax verwirrend? Microsoft hat die Kritik gehört und ein neues Infrastructure-as-Code-Projekt namens Azure Bicep eingeführt.

In diesem Beitrag erfahren Sie alles über Azure Bicep, Verbesserungen gegenüber ARM-Vorlagen, und finden ein Tutorial zum Einstieg.

## **Was ist Azure Bicep?**

<https://www.varonis.com/hubfs/Imported_Blog_Media/Blog_Design_AzureBicep_20210621_Version1_DE.png?hsLang=de>

Azure Bicep ist eine neue [deklarative Sprache](https://www.techopedia.com/definition/18763/declarative-programming) für die Bereitstellung von Azure-Ressourcen. Bicep ist eine domänenspezifische Sprache, d. h. Microsoft hat die Sprache gezielt für die Verwendung in bestimmten Szenarien entwickelt. Mit Bicep lassen sich keine Nicht-Azure-Ressourcen bereitstellen und man kann nicht in anderen Cloud-Anbietern arbeiten, z. B. in Amazons AWS oder Googles GCP-Cloud. Bicep ist auch keine Standardprogrammiersprache zur Anwendungsentwicklung.

Möchten Sie eine neue Programmiersprache lernen? Werfen Sie einen Blick auf den Artikel [11 beliebte Programmiersprachen, die Türen öffnen](https://www.varonis.com/blog/programming-languages/?__hstc=161057314.432ed89134d11b6d56ae6e6cad3c9965.1635191287020.1635191287020.1635191287020.1&__hssc=161057314.131.1635191287021&__hsfp=1561754925&hsLang=de) von Rob Sober!

Das Ziel von Microsoft für Azure Bicep ist es, durch eine einfachere Syntax, eine bessere Wiederverwendung von Code und eine flexiblere Dateistruktur ein insgesamt besseres Erlebnis beim Schreiben von Code zu bieten. Azure Bicep bietet eine bessere Unterstützung für Modularität und die Möglichkeit, Code wiederzuverwenden.

### **Azure Bizeps und Azure-ARM-Vorlagen im Vergleich**

ARM-Vorlagen sind Dateien, die Azure-Ressourcen darstellen. Diese werden in einem speziellen JSON-Format geschrieben, das kein gewöhnliches JSON ist. Die ARM-Vorlagensyntax enthält Funktionen und Methoden zur Durchführung komplexer Vorgänge.

Eine häufige Beschwerde bezüglich ARM JSON ist, dass es aufgrund der komplexen Syntax schwierig zu schreiben und zu interpretieren ist. In Bicep wurde aufgrund solcher Beschwerden ein einfacherer Ansatz für die Sprachsyntax gewählt. Wenn Sie eine ARM-Vorlage erstellen, müssen Sie komplizierte Ausdrücke verwenden, und die endgültige Ausgabe ist oftmals ziemlich ausführlich.

Lassen Sie uns nun die Syntax und den Code in ARM JSON und Bicep vergleichen, die für die Bereitstellung eines Azure Virtual Network erforderlich sind. Hier ist eine grundlegende ARM-Vorlage für die Bereitstellung dieser Ressourcen, die 27 Zeilen umfasst.

<https://blogvaronis2.wpengine.com/wp-content/uploads/2021/06/vnet-json-example.png><https://www.varonis.com/hubfs/Imported_Blog_Media/vnet-json-example-2.png?hsLang=de>

Hier ist die entsprechende Ressourcenbereitstellung mit einer Bicep-Vorlage unter Verwendung von nur 19 Zeilen. Machen Sie sich keine Sorgen darum, die Syntax zu verstehen. Sie werden später in diesem Tutorial mehr über die Bicep-Dateistruktur erfahren.

<https://blogvaronis2.wpengine.com/wp-content/uploads/2021/06/vnet-bicep-example.png><https://www.varonis.com/hubfs/Imported_Blog_Media/vnet-bicep-example-2.png?hsLang=de>

### **Vorteile von Azure Bicep**

<https://www.varonis.com/hubfs/Imported_Blog_Media/Blog_Design_AzureBicep_20210621_Version1_DE2.png?hsLang=de>

Microsoft hat Azure Bicep als Reaktion auf die steile Lernkurve von ARM-Vorlagen erstellt. Viele IT-Profis empfinden die Ausführlichkeit und Syntax von ARM-Vorlagen im Vergleich zu anderen Lösungen als umständlich.

Zu den Vorteilen von Azure Bicep gehören:

- **Optimierung der Syntax**: Bicep hat eine einfachere Syntax zum Schreiben von Vorlagen. Wenn Sie mit der Syntax von [Hashicorp Terraform](https://www.terraform.io/) vertraut sind, werden Sie Bicep schnell lernen, da die Syntax sehr ähnlich ist. Mit Bicep können Sie Parameter und Variablen referenzieren, ohne Funktionen zu verwenden. Bicep verwendet String-Interpolation anstelle der Verkettung von Strings. Außerdem können Sie Ressourceneigenschaften über ihre symbolischen Namen referenzieren, anstatt komplexe Referenzanweisungen zu verwenden. Diese Verbesserungen erleichtern das Erstellen und Lesen von Bicep-Vorlagen im Vergleich zur ARM-JSON-Syntax.
- **Module**: Sie können komplexe Vorlagenbereitstellungen erstellen, indem Sie kleinere Moduldateien erstellen. Sie referenzieren diese Module dann in der Hauptvorlage. Beispielsweise können Sie ein Modul zum Erstellen einer virtuellen Maschine haben und dieses dann in der Hauptvorlage referenzieren.
- **Verwaltung von Ressourcenabhängigkeiten**: In den meisten Fällen erkennt Bicep automatisch Ressourcenabhängigkeiten. Bei ARM-Vorlagen müssen Sie diese Abhängigkeiten selbst erstellen, wenn Sie eine Vorlage schreiben. Zum Beispiel benötigt eine virtuelle Maschine eine Netzwerkschnittstelle, die ein Virtual Network und ein Subnetz erfordert. Bicep erkennt solche Ressourcenabhängigkeiten automatisch und stellt sie in der erforderlichen Reihenfolge bereit.

## **Installation von Azure Bicep**

Um Bicep-Dateien zu erstellen und bereitzustellen, müssen Sie einige Tools auf Ihrem lokalen System installieren. Microsoft bietet mehrere Optionen für die Installation dieser Tools unter Windows, Linux und macOS an.

### **Bizeps CLI**

Azure Bicep verfügt über eine Befehlszeilenschnittstelle (Command-Line Interface, CLI) zum Kompilieren der Bicep-Dateien in ARM-JSON-Vorlagen. Sie können die Bicep-CLI auch zum Dekompilieren von ARM-JSON-Vorlagen in Bicep-Dateien verwenden, wenn Sie vorhandene Vorlagen haben, die Sie konvertieren möchten.

Microsoft bietet Installationsprogramme für Windows, Linux und macOS an. Sie finden das neueste Installationsprogramm [hier auf der GitHub-Seite des Projekts](https://github.com/Azure/bicep/releases/latest). Wenn Sie die Bicep CLI manuell installieren, müssen Sie den Installationsort zu Ihrer [PATH-Umgebungsvariablen](https://en.wikipedia.org/wiki/PATH_(variable)) hinzufügen, um die Befehle von einer Konsole aus zu verwenden.

Microsoft bietet auch mehrere Skripte zum Herunterladen, Installieren und Konfigurieren der PATH-Variable an:

- [Linux-Installationsskript](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/bicep-install?tabs=azure-powershell#linux)
- [macOS-Installationsskript](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/bicep-install?tabs=azure-powershell#macos)
- [Windows-Installationsskript](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/bicep-install#windows)

### **Azure CLI**

Die Azure-Befehlszeilenschnittstelle (Azure CLI) ist ein Satz von Befehlen, die zum Erstellen und Verwalten von Azure-Ressourcen verwendet werden. Azure CLI ist für Windows, macOS und Linux verfügbar und bietet eine Alternative zur Verwendung der Azure PowerShell. Erfahren Sie mehr darüber, [wie Sie Azure CLI auf Ihrem System installieren können](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli).

Ab Azure CLI Version 2.20.0 liefert Microsoft die Bicep-CLI-Binärdateien automatisch mit. Dank dieser Konfiguration müssen Sie Bicep nicht separat installieren, wenn Sie es mit Azure CLI verwenden möchten.

Azure CLI unterstützt nativ die Bereitstellung von Bicep-Dateien mithilfe von Bereitstellungsbefehlen. Anstatt beispielsweise eine Bicep-Datei für die Bereitstellung in eine ARM-JSON-Vorlage zu kompilieren, können Sie die Bicep-Datei direkt mit dem folgenden Befehl bereitstellen:

```
az deployment group create \

--template-file azuredeploy.bicep \

--resource-group myResourceGroup
```

1. az deployment group create \
2. --template-file azuredeploy.bicep \
3. --resource-group myResourceGroup

```
az deployment group create \

--template-file azuredeploy.bicep \

--resource-group myResourceGroup
```

Sie können viele Bicep-Befehle auch mit dem Befehl „az bicep“ ausführen:

```
az bicep
```

1. az bicep

```
az bicep
```

Verfügbare Befehle umfassen das Erstellen einer Bicep-Datei aus einer ARM-Vorlage oder das Aktualisieren der Bicep-CLI-Version. Hier sind die derzeit in Azure CLI mit Bicep Version 0.3.539 verfügbaren Befehle.

<https://blogvaronis2.wpengine.com/wp-content/uploads/2021/06/az-bicep-help.png><https://www.varonis.com/hubfs/Imported_Blog_Media/az-bicep-help-2.png?hsLang=de>

Azure CLI installiert eine separate Version von Bicep CLI, die nicht mit anderen Installationen im System in Konflikt steht. Azure CLI fügt Bicep CLI auch nicht zu Ihrer PATH-Umgebungsvariablen hinzu. Wenn Sie vorhaben, Bicep außerhalb von Azure CLI zu verwenden, müssen Sie die Installation anhand der Anweisungen aus dem vorherigen Abschnitt durchführen.

### **Azure PowerShell**

Wie auch Azure CLI ist [Azure PowerShell](https://docs.microsoft.com/en-us/powershell/azure/new-azureps-module-az) ein Satz von Modulen, die für die Bereitstellung und Verwaltung von Azure-Ressourcen mithilfe von PowerShell entwickelt wurden. Azure PowerShell funktioniert mit PowerShell 5.1 für Windows-Systeme und PowerShell 7 und höher auf allen Plattformen.

Im Gegensatz zur Azure CLI enthält Azure PowerShell nicht automatisch Bicep-CLI-Befehle. Um Bicep CLI verwenden zu können, müssen Sie Azure PowerShell Version 5.6.0 oder höher haben. Außerdem müssen Sie bereits Bicep CLI installiert und zu Ihrer PATH-Umgebungsvariablen hinzugefügt haben.

In Zukunft wird wahrscheinlich eine Version des Azure-PowerShell-Moduls mit nativer Unterstützung für Bicep-CLI-Befehle veröffentlicht werden.

## **Erstellen von Azure-Bicep-Dateien**

Um mit dem Schreiben von Bicep-Vorlagen zu beginnen, bietet Microsoft eine Visual-Studio-Codeerweiterung für die Bicep-Sprache an. Die Erweiterung bietet Sprachunterstützung und Ressourcen-Autovervollständigung zur Unterstützung bei der Erstellung und Validierung von Bicep-Dateien.

Wählen Sie in Visual Studio Code das Symbol **Erweiterungen** in der linken Leiste, um den Marketplace anzuzeigen. Suchen Sie nach „bicep“ und installieren Sie die von Microsoft zur Verfügung gestellte Erweiterung.

<https://blogvaronis2.wpengine.com/wp-content/uploads/2021/06/vscode-bicep-extension.png><https://www.varonis.com/hubfs/Imported_Blog_Media/vscode-bicep-extension-2.png?hsLang=de>

Wenn Sie zum Beispiel eine virtuelle Maschine mit VS-Code definieren, bietet die Bicep-Erweiterung IntelliSense für die Eigenschaften der virtuellen Maschine. Sie können schnell die Eigenschaften der virtuellen Maschine finden, die in der Vorlage definiert werden sollen.

<https://blogvaronis2.wpengine.com/wp-content/uploads/2021/06/vscode-intellisense.png><https://www.varonis.com/hubfs/Imported_Blog_Media/vscode-intellisense-2.png?hsLang=de>

Um mit Ihrer ersten Bicep-Vorlage zu beginnen, erstellen Sie eine Datei namens **storageAccount.bicep**. Azure-Bicep-Dateien haben die Erweiterung **.bicep**, um sie von ARM-Vorlagen zu unterscheiden. Gehen wir nun auf die Bicep-Syntax ein, um mit der Erstellung dieses Speicherkontos zu beginnen.

### **Ressourcendeklaration**

Der Hauptbestandteil einer Bicep-Vorlage ist die Ressourcendeklaration. Sie benötigen eine Möglichkeit, die Azure-Ressource zu definieren, die Sie bereitstellen möchten. Hier ist ein grundlegendes Framework zur Deklaration einer Ressource:

```
"name": “<resource name>”,
"type": "Microsoft.<resource provider>/<resource type>",
"apiVersion": "<api version>",
"tags": {
    "key": "value"
},
"location": "<location>",
"dependsOn": [ ],
"properties": { }
```

1. "name": “<resource name>”,
2. "type": "Microsoft.<resource provider>/<resource type>",
3. "apiVersion": "<api version>",
4. "tags": {
5. "key": "value"
6. },
7. "location": "<location>",
8. "dependsOn": [ ],
9. "properties": { }

```
"name": “<resource name>”,
"type": "Microsoft.<resource provider>/<resource type>",
"apiVersion": "<api version>",
"tags": {
    "key": "value"
},
"location": "<location>",
"dependsOn": [ ],
"properties": { }
```

Im Folgenden werden die einzelnen Komponenten der Ressourcendeklaration näher erläutert:

- **Ressource**: Dient zum Deklarieren einer Azure-Ressource für die Bereitstellung.
- **Symbolischer Name**: Der Bezeichner oder Referenzname zur Verwendung an anderen Stellen in der Bicep-Vorlage. Angenommen, Sie erstellen ein virtuelles Netzwerk und stellen eine virtuelle Maschine bereit. In diesem Fall müssen Sie auf das virtuelle Netzwerk verweisen, in dem die Netzwerkschnittstelle der virtuellen Maschine bereitgestellt werden soll. Beachten Sie, dass dies nicht der Name der bereitgestellten Azure-Ressource ist. Sie verwenden diesen Namen nur, um die Ressource später in der Vorlage zu referenzieren.
- **Typ**: Der Typ der Ressource, die Sie bereitstellen. Der Typ setzt sich wie folgt zusammen: Ressourcenanbieter, z. B. **Microsoft.Storage**, gefolgt vom Ressourcentyp, z. B. **storageAccounts**.
- **API-Version**: Die API-Version, die bei der Bereitstellung der Ressource verwendet werden soll. Die API-Version bestimmt, welche Eigenschaften bei der Bereitstellung der Ressource verfügbar sind. Das Deklarieren der API-Version funktioniert ähnlich wie bei einer ARM-Vorlage.
- **Eigenschaften**: Jede Ressource benötigt einen Namen und einen Speicherort für die Bereitstellung. Der Name, den Sie hier angeben, wird der Name der Ressource sein, wenn sie in Azure bereitgestellt wird. Die Kombination aus Typ und API-Version bestimmt, welche Eigenschaften Sie verwenden können.

Hier ist der Anfang einer Bicep-Vorlage für die Bereitstellung eines Speicherkontos. Der symbolische Name ist **stgAcct**, aber der Name der bereitgestellten Ressource ist **stgacctbicepdemo**. Beachten Sie auch die Deklaration des **Typs** und der **API-Version** in der ersten Zeile. Anschließend definieren Sie die restlichen Speicherkontoeigenschaften wie Speicherort, Speicherkontotyp und SKU.

```
resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {

name: 'stgacctbicepdemo'

location: 'westus2'

kind: 'StorageV2'

sku: {

name: 'Standard_LRS'

tier: 'Standard'

}

}
```

1. resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {
2. name: 'stgacctbicepdemo'
3. location: 'westus2'
4. kind: 'StorageV2'
5. sku: {
6. name: 'Standard_LRS'
7. tier: 'Standard'
8. }
9. }

```
resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {

name: 'stgacctbicepdemo'

location: 'westus2'

kind: 'StorageV2'

sku: {

name: 'Standard_LRS'

tier: 'Standard'

}

}
```

**Parameter und Variablen**

Parameter und Variablen machen Ihre Bicep-Vorlagen dynamischer. Anstatt Ressourcenwerte fest einzuprogrammieren, können Sie Werte bei der Bereitstellung angeben. Wenn Sie Parameter deklarieren, müssen Sie bei der Erstellung der Bereitstellung einen Wert an die Bicep-Vorlage übergeben.

Parameter werden mit dem Schlüsselwort **param** deklariert und Variablen mit dem Schlüsselwort **var**. Hier sind einige Beispiele für Bicep-Parameter namens **name** und **location** sowie eine Variable namens **stgAcctName**. Beachten Sie, dass der Parameter **location** einen Standardwert von *westus2* aufweist. Wenn Sie also keinen Wert angeben, verwendet die Bereitstellung die Region *westus2* zum Bereitstellen.

1. ```
   param name string
   
   
   param location string = 'westus2'
   
   
   var stgAcctName = concat(name, '2468')
   ```
   
     1. param name string
     2. param location string = 'westus2'
     3. var stgAcctName = concat(name, '2468')
   
   ```
   param name string
   
   
   param location string = 'westus2'
   
   
   var stgAcctName = concat(name, '2468')
   ```

Die Variable **stgAcctName** führt eine String-Verkettung des Parameters **name** und einiger Zahlen durch. Diese Aktion dient dazu, dem Speicherkonto einen eindeutigen Namen innerhalb von Azure zu geben. Die Variablendeklaration demonstriert auch, wie Sie die gleichen [ARM-Vorlagenfunktionen](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-string?tabs=bicep) innerhalb von Bicep-Vorlagen verwenden können.

Hier ist die aktualisierte Vorlage **storageAccount.bicep** unter Verwendung Ihrer deklarierten Parameter und Variablen. Beachten Sie, dass die Eigenschaftswerte des Speicherkontos **name** und **location** durch ihre entsprechenden Parameter- und Variablennamen ersetzt wurden.

```
param name string

param location string = 'westus2'

var stgAcctName = concat(name, '2468')

resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {

name: stgAcctName

location: location

kind: 'StorageV2'

sku: {

name: 'Standard_LRS'

tier: 'Standard'

}

}
```

1. param name string
2. param location string = 'westus2'
3. var stgAcctName = concat(name, '2468')
4. resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {
5. name: stgAcctName
6. location: location
7. kind: 'StorageV2'
8. sku: {
9. name: 'Standard_LRS'
10. tier: 'Standard'
11. }
12. }

```
param name string

param location string = 'westus2'

var stgAcctName = concat(name, '2468')

resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {

name: stgAcctName

location: location

kind: 'StorageV2'

sku: {

name: 'Standard_LRS'

tier: 'Standard'

}

}
```

Bicep-Vorlagen verwenden dieselben Parameterdateien, die in JSON für ARM-Vorlagen geschrieben werden. Das bedeutet, dass Sie Ihre vorhandenen ARM-Parameterdateien für die Bereitstellung von Azure-Bicep-Vorlagen verwenden können.

### **String-Interpolation**

Eine der beliebtesten ARM-Vorlagenfunktionen ist [**concat()**](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-functions-string?tabs=json#concat). Diese Funktion verbindet mehrere Strings zu einem einzigen String. Diese wurde im vorherigen Abschnitt verwendet, um den Parameter **name** und eine Zahl zu verketten und so den Variablenwert **stgAcctName** zu erstellen.

Anstelle der Verkettung kann in den Bicep-Vorlagen die String-Interpolation verwendet werden. Sie können Strings mit einem Parameter- oder Variablennamen definieren, und Bicep wertet den endgültigen String anhand der tatsächlichen Werte aus.

Anstatt beispielsweise die Funktion **concat()** in der Variablendeklaration zu verwenden, können Sie den Parameternamen mit ${ } einklammern, etwa so:

```
var stgAcctName = '${name}2468'
```

1. var stgAcctName = '${name}2468'

```
var stgAcctName = '${name}2468'
```

**Bedingte Zuweisung**

Bedingte Zuweisungen ermöglichen das Festlegen eines Wertes basierend auf verschiedenen Bedingungen. Nehmen wir zum Beispiel an, Ihre Speicherkonto-Bicep-Vorlage hat einen booleschen Parameter dafür, ob teurere SSD-Laufwerke für das Speicherkonto verwendet werden sollen oder nicht (standardmäßig **false**):

```
param useSSD bool = false
```

1. param useSSD bool = false

```
param useSSD bool = false
```

Innerhalb der Ressourcendeklaration können Sie einen ternären Operator verwenden, um die **sku** zu bestimmen. Ein ternärer Operator entspricht einer **„if then else“**-Anweisung. Wenn **useSSD** auf **true** gesetzt ist, dann verwendet das Speicherkonto die **Premium_LRS**-SKU; andernfalls verwendet das Speicherkonto die **Standard_LRS**-SKU.

```
param name string

param location string = 'westus2'

param useSSD bool = false

var stgAcctName = '${name}2468'

resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {

name: stgAcctName

location: location

kind: 'StorageV2'

sku: {

// wenn „true“, dann Premium-SSD verwenden, ansonsten Standard-HDD

name: useSSD ? 'Premium_LRS' : 'Standard_LRS'

}

}
```

1. param name string
2. param location string = 'westus2'
3. param useSSD bool = false
4. var stgAcctName = '${name}2468'
5. resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {
6. name: stgAcctName
7. location: location
8. kind: 'StorageV2'
9. sku: {
10. // wenn „true“, dann Premium-SSD verwenden, ansonsten Standard-HDD
11. name: useSSD ? 'Premium_LRS' : 'Standard_LRS'
12. }
13. }

```
param name string

param location string = 'westus2'

param useSSD bool = false

var stgAcctName = '${name}2468'

resource stgAcct 'Microsoft.Storage/storageAccounts@2021-02-01' = {

name: stgAcctName

location: location

kind: 'StorageV2'

sku: {

// wenn „true“, dann Premium-SSD verwenden, ansonsten Standard-HDD

name: useSSD ? 'Premium_LRS' : 'Standard_LRS'

}

}
```

**Bereitstellen von Bicep-Vorlagen**

Nun, da Sie eine Bicep-Vorlage erstellt haben, ist es an der Zeit, das Speicherkonto in Azure bereitzustellen! Sie haben zwei Optionen für die Bereitstellung von Bicep-Vorlagen. Sie können die Bicep-Vorlage für die Bereitstellung verwenden oder die Vorlage für die Bereitstellung in ARM JSON konvertieren.

### **Verwenden der Bizeps-Vorlagendatei**

Der Azure Resource Manager arbeitet weiterhin mit den in JSON geschriebenen Vorlagen. Wenn Sie eine Bicep-Vorlage an Azure übermitteln, konvertiert das Bicep-Tooling die Vorlage in das JSON-Format. Dieser Vorgang wird als Transpilierung bezeichnet, wenn eine Programmiersprache in eine andere Sprache konvertiert wird.

Als Autor der Vorlage brauchen Sie sich um diese Konvertierung nicht zu kümmern. Sie definieren weiterhin Azure-Ressourcen in der Bicep-Vorlage, und Bicep führt die Konvertierung für Sie durch.

Um die Bicep-Vorlage mithilfe von Azure PowerShell bereitzustellen, verwenden Sie den Befehl [**New-AzResourceGroupDeployment**](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment) unter Angabe der Ressourcengruppe für die Bereitstellung der Ressourcen. Das folgende Beispiel verwendet eine Ressourcengruppe namens **bicep-rg**.

Möchten Sie Azure Active Directory und andere Office 365-Dienste verwalten? Schauen Sie sich [Verbinden von Office 365 PowerShell: Azure AD-Module](https://www.varonis.com/blog/connect-to-office-365-powershell/?__hstc=161057314.432ed89134d11b6d56ae6e6cad3c9965.1635191287020.1635191287020.1635191287020.1&__hssc=161057314.131.1635191287021&__hsfp=1561754925&hsLang=de) an!

Da die Parameter **location** und **useSSD** Standardwerte haben, müssen Sie nur den Parameter **name** angeben. Da **New-AzResourceGroupDeployment** bereits einen Parameter **-Name** hat, geben Sie mit **-nameFromTemplate** den Parameter für die Bicep-Vorlage an.

```
New-AzResourceGroupDeployment `

-ResourceGroupName bicep-rg `

-TemplateFile storageAccount.bicep `

-nameFromTemplate 'stgacctbicepdemo'
```

1. New-AzResourceGroupDeployment `
2. -ResourceGroupName bicep-rg `
3. -TemplateFile storageAccount.bicep `
4. -nameFromTemplate 'stgacctbicepdemo'

```
New-AzResourceGroupDeployment `

-ResourceGroupName bicep-rg `

-TemplateFile storageAccount.bicep `

-nameFromTemplate 'stgacctbicepdemo'
```

Für die Bereitstellung über die Azure-Befehlszeilenschnittstelle verwenden Sie den Befehl [**az deployment group create**](https://docs.microsoft.com/en-us/cli/azure/deployment/group?view=azure-cli-latest#az_deployment_group_create) unter Angabe des Ressourcengruppennamens und der Vorlagendatei. Verwenden Sie **-parameter**, um den Speicherkontonamen für die Vorlage anzugeben.

```
az deployment group create \

--resource-group bicep-rg \

--template-file storageAccount.bicep \

--parameters name='stgacctbicepazcli'
```

1. az deployment group create \
2. --resource-group bicep-rg \
3. --template-file storageAccount.bicep \
4. --parameters name='stgacctbicepazcli'

```
az deployment group create \

--resource-group bicep-rg \

--template-file storageAccount.bicep \

--parameters name='stgacctbicepazcli'
```

**Konvertieren von Bicep- und ARM-Vorlagen**

Um eine Bicep-Vorlage manuell in eine ARM-Vorlage zu konvertieren, verwenden Sie den Befehl **bicep build** und geben Sie dabei den Pfad zur Bicep-Vorlagendatei an.

Hier ist ein Beispiel für die Konvertierung der Bicep-Vorlage **storageAccount.bicep** in eine ARM-Vorlage.

```
bicep build storageAccount.bicep
```

1. bicep build storageAccount.bicep

```
bicep build storageAccount.bicep
```

Die konvertierte ARM-Vorlage können Sie mit dem Azure-PowerShell-Befehl [**New-AzResourceGroupDeployment**](https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azresourcegroupdeployment) oder dem Azure-CLI-Befehl [**az deployment**](https://docs.microsoft.com/en-us/cli/azure/deployment) bereitstellen.

Wenn Sie eine bestehende ARM-JSON-Vorlage haben, können Sie diese mit dem Befehl **bicep decompile** in eine Bicep-Vorlage konvertieren, etwa so:

2. bicep decompile storageAccount.json

Der Dekompilierungsprozess ist ein Best-Effort-Prozess. Microsoft garantiert keine direkte Zuordnung von ARM JSON zu Bicep. Sie müssen die Bicep-Vorlage überprüfen und Warnungen und Fehler beheben. Wenn ein Problem beim Dekompilieren auftritt, können Sie ein Problem oder eine Ungenauigkeit auf der [Seite „Bicep GitHub Issues“](https://github.com/Azure/bicep/issues) melden.

## **FAQ zu Azure Bicep**

### **Was ist Azure Bicep?**

Azure Bicep ist eine neue domänenspezifische Sprache für die Bereitstellung von Azure-Ressourcen. Azure Bicep ist eine ergänzende Bereitstellungstechnologie für Vorlagen im Azure Resource Manager (ARM).

### **Was ist Azure ARM?**

Der Azure Resource Manager (ARM) ist der Bereitstellungs- und Verwaltungsdienst für Azure, der für das Erstellen, Aktualisieren und Löschen von Ressourcen zuständig ist. ARM-Vorlagen sind JSON-Dateien mit einer oder mehreren Azure-Ressourcen, die als Code definiert sind, für konsistente Bereitstellungen.

## **Nächste Schritte**

Hoffentlich sind Sie jetzt davon überzeugt, dass Azure Bicep besser als ARM-Vorlagen für das Schreiben von Azure-Infrastruktur als Code ist. Microsoft verbessert das Bicep-Tooling schnell, um es zur ersten Wahl für Azure-Bereitstellungen zu machen.

Wenn Sie mehr über Azure Bicep erfahren möchten, sehen Sie sich die verfügbaren [Microsoft-Learn-Module](https://docs.microsoft.com/en-us/search/?terms=bicep&category=Learn) für den Einstieg an. Wenn Sie Bicep- und ARM-Vorlagen schnell vergleichen möchten, sehen Sie sich den [Bicep Playground](https://bicepdemo.z22.web.core.windows.net/) an. Sie können in jeder Vorlagensprache schreiben und den entsprechenden Code sofort sehen. Sie können auch Beispielvorlagen ansehen, um zu lernen, wie man Bicep-Vorlagen schreibt.

 

[Vollständigen Beitrag anzeigen](https://www.varonis.com/de/blog/azure-bicep)

```json
{
  "@context" : "http://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "Jeff Brown"
  },
  "dateModified" : "2021-10-28T16:25:22.133Z",
  "datePublished" : "2021-09-23T04:00:00Z",
  "headline" : "Azure Bicep: Einstieg und Leitfaden",
  "image" : {
    "@type" : "ImageObject",
    "height" : 415,
    "url" : "https://info.varonis.com/hubfs/Imported_Blog_Media/azure-bicep-hero-2-1.png",
    "width" : 1240
  },
  "mainEntityOfPage" : "https://www.varonis.com/de/blog/azure-bicep",
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "height" : 60,
      "url" : "/hs/hsstatic/content_shared_assets/static-1.4092/img/default-amp-logo.png",
      "width" : 60
    },
    "name" : "Varonis Blog"
  }
}
```