Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 5 Min.

Setup per CLI oder als Stand-alone-Runtime

Dieser Beitrag erklärt, was Bicep ist, wie das Bicep CLI als zugrunde liegende Engine installiert wird, aus welchen Grundbausteinen ein Template besteht und wie VS Code mit der passenden Erweiterung den Einstieg erleichtert.
Blaupause.png
© EMGenie

Der Einstieg in Azure Infrastructure as Code stellt schnell die Frage nach dem richtigen Einstiegspunkt. Für viele Teams ist Bicep die erste Wahl, weil es die Azure-native Alternative zu klassischen ARM-Templates darstellt und zugleich deutlich verständlicher und pflegeleichter wirkt. Der Grund liegt in der Syntax: Bicep ist kompakt, lesbar und auf den Azure-Use-Case zugeschnitten.

Warum Bicep?

Infrastructure as Code bedeutet im Kern, Infrastruktur nicht über das Portal oder manuelle Klickschritte, sondern über deklarativen Code zu definieren. Das schafft Wiederholbarkeit, Versionierung und Austauschbarkeit. Bei Azure ist Bicep heute die bevorzugte Lösung, wenn die native Azure-Umgebung ohne zusätzliche Abstraktion genutzt werden soll.

Der Vorteil von Bicep liegt darin, dass die Sprache auf ARM aufbaut, aber mit einer viel besser lesbaren Syntax arbeitet. Anstelle sehr umfangreicher JSON-Dateien entstehen Bicep-Dateien mit klaren Strukturen, leicht verständlichen Parametern und einer weitgehend intuitiven Definition von Ressourcen.

Ein typisches Beispiel sieht so aus:

 

param location string = resourceGroup().location
resource storage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: 'demostorage${uniqueString(resourceGroup().id)}'
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

 

Das ist bereits ein vollständiges, funktionales Template. Es beschreibt eine Azure-Storage-Account-Ressource mit wenigen Zeilen. Genau an dieser Stelle zeigt sich der eigentliche Unterschied zu ARM-JSON: Die Wartbarkeit und die Lesbarkeit steigen stark, ohne dabei die Azure-native Integrationsfähigkeit zu verlieren.

Das Bicep CLI: zwei Installationswege

Die eigentliche Engine hinter Bicep heißt Bicep CLI. Sie übernimmt das Kompilieren einer .bicep-Datei in ARM-JSON sowie Syntaxprüfungen. Für die Installation gibt es zwei gängige Wege.

Der erste Weg führt über das Azure CLI, welches das Bicep CLI direkt mitverwaltet. Falls das Modul fehlt oder veraltet ist, hilft:

 

az bicep install
az bicep upgrade
az bicep version

 

Der zweite Weg installiert das Bicep CLI eigenständig, ohne Abhängigkeit zum Azure CLI. Nach der manuellen Installation werden Bicep-Befehle direkt mit bicep statt mit az bicep aufgerufen.

Beide Varianten liefern dasselbe Bicep CLI; der Unterschied liegt lediglich darin, ob es über das Azure CLI eingebettet oder als eigenständiges Tool betrieben wird. Wer bereits mit az deployment ... arbeitet, bleibt meist beim ersten Weg. Für eine Azure-CLI-unabhängige Umgebung, etwa wenn Azure PowerShell im Einsatz ist, braucht es die Stand-alone-Installation. Außerdem wird die eigenständige Installation benötigt, wenn das Feature Bicep Console – ähnlich wie bei Terraform – zum Einsatz kommen soll; dazu mehr im weiteren Verlauf der Serie.

Grundbestandteile eines Bicep-Templates

Ein Bicep-Template setzt sich aus wenigen, klar abgegrenzten Elementen zusammen, hauptsächlich:

  • Parameter (param): Eingabewerte, die beim Deployment von außen übergeben werden
  • Variablen (var): intern berechnete Werte, abgeleitet aus Parametern oder festen Angaben
  • Ressourcen (resource): die eigentlichen Azure-Objekte, etwa ein Storage-Account oder App Service Plan
  • Module (module): Referenzen auf andere Bicep-Dateien zur Wiederverwendung ganzer Ressourcenblöcke
  • Outputs (output): Rückgabewerte, die nach einem Deployment weiterverwendet werden können

Das Beispiel weiter oben zeigt bereits drei dieser Bausteine: einen Parameter für die Location, eine Ressourcendefinition für den Storage-Account sowie implizit eine Variable über den berechneten Namen. Die übrigen Teile dieser Serie vertiefen jeden dieser Bausteine einzeln. Die Reihenfolge im Template ist grundsätzlich beliebig, folgt in der Praxis aber meist der Reihenfolge aus dem Beispiel: Parameter, Variablen, Ressourcen, Outputs.

Visual Studio Code und Extensions

Theoretisch reichen eine Built-in-Konsole und Notepad. Für die ernsthafte tägliche Arbeit mit Bicep ist VS Code zusammen mit der offiziellen Bicep-Erweiterung die naheliegende Kombination. Die Erweiterung ergänzt IntelliSense für Ressourcentypen und -eigenschaften, Syntax-Highlighting, Inline-Fehlerdiagnostik sowie einen Befehl zur Visualisierung der Ressourcenstruktur. Tippfehler bei API-Versionen oder Eigenschaftsnamen werden dadurch bereits während des Schreibens sichtbar, lange bevor ein Build oder Deployment gestartet wird.

Nach der Installation von VS Code und der Bicep-Erweiterung genügt eine einzelne .bicep-Datei, um direkt loszulegen: Die Erweiterung erkennt den Dateityp automatisch und aktiviert alle Sprachfunktionen ohne zusätzliche Konfiguration.

Deployment eines Templates

Ein fertiges Template lässt sich auf mehreren Wegen bereitstellen, je nach bevorzugtem Workflow:

  • Über das Kontextmenü in VS Code: Ein Rechtsklick auf die .bicep-Datei im Explorer, und die Auswahl Deploy Bicep File startet ein geführtes Deployment, bei dem Subscription, Resource Group und Parameter direkt im Editor abgefragt werden.
  • Über das Bicep Deployment Pane: Eine Seitenleiste der Bicep-Erweiterung zeigt laufende und vergangene Deployments inklusive Status, sodass sich der Fortschritt verfolgen lässt, ohne zusätzlich das Azure CLI zu bemühen.
  • Über ein CLI- oder PowerShell-Kommando: Der klassische Weg führt über az deployment group create, der sich gut für Automatisierung und Pipelines eignet.

 

az deployment group create `
  --resource-group rg-bicep-demo `
  --template-file .\01-bicep-setup.example.bicep

 

Alle drei Wege führen zum selben Ergebnis. Die Wahl hängt davon ab, ob ein schneller manueller Test oder ein automatisierter, wiederholbarer Ablauf im Vordergrund steht.

Best Practices für den Einstieg

  • Ein kleines Beispiel ist der beste Einstieg und sinnvoller als ein großes Referenzprojekt. Ziel ist, zunächst einen erfolgreichen Durchstich zu erreichen.
  • VS Code mit einer geeigneten Bicep-Erweiterung liefert sofort Feedback zur Syntax und Struktur.
  • Die Syntax sollte vor dem Deployment mit einem lokalen Build geprüft werden.
  • Parameter und Variablen werden bewusst benannt und lesbar gehalten.
  • Unnötige Komplexität sollte in den ersten Beispielen vermieden werden.

Fazit

Bicep verbindet die Vorteile von ARM mit einer deutlich besseren Benutzererfahrung. Der Einstieg gelingt über das Bicep CLI, egal ob per Azure CLI oder als eigenständige Installation, und mit VS Code als Editor samt passender Erweiterung. Wichtig ist zunächst das Verständnis der Grundbausteine: Parameter, Variablen, Ressourcen, Outputs und Module.

Im nächsten Teil dieser Serie folgt der nächste Baustein: Parameter und Variablen, mit denen ein Template erst wirklich flexibel und wiederverwendbar wird.

Neueste Beiträge

Lern! Dich! Schlau! - .NET Developer Conference 2026
Neu erworbenes Wissen, Austausch in den Gesprächen und hervorragendes Essen: Die DDC bietet Teilnehmenden ein Komplettpaket für die Fortbildung in .NET und KI.
6 Minuten
14. Okt 2026
Laufzeitgewinn messen - Schnellere .NET-CI-Pipelines mit Test Sharding, Teil 4
Mehr Shards können das Feedback beschleunigen, aber auch zugleich die CI-Kosten erhöhen. Ein Vergleich mit zwei Referenzläufen zeigt, wo sich zusätzliche Runner lohnen. Ebenso wichtig ist der Nachweis, dass weiterhin alle vorgesehenen Tests laufen.
6 Minuten
Vom vagen Ticket zum präzisen Prompt - Projektanforderungen an Entwickler in Zeiten von KI, Teil 2
Ein Jira-Ticket sagt: „Bewertungssystem implementieren.“ Ein Mensch liest und denkt den Kontext mit. Ein Agent nicht. Fünf Prompt-Patterns zeigen, wie der Weg vom Ticket zum funktionierenden Code kürzer wird, wenn man lernt, in Kontext statt in Code zu denken.
8 Minuten
22. Okt 2026

Das könnte Dich auch interessieren

Tests gezielt verteilen - Schnellere .NET-CI-Pipelines mit Test Sharding, Teil 1
Lange Testsuiten verzögern das Feedback im Pull Request. Meziantou.ShardedTest verteilt die Testfälle auf mehrere CI-Jobs und verspricht dadurch mehr Geschwindigkeit. Dieser Einstieg zeigt, wie die Aufteilung funktioniert und welche Voraussetzungen nötig sind.
6 Minuten
GitHub Actions umstellen - Schnellere .NET-CI-Pipelines mit Test Sharding, Teil 2
Eine Jobmatrix bringt die lokale Testaufteilung auf mehrere Runner. Damit daraus ein verlässlicher CI-Lauf entsteht, müssen Shard-Nummern, Fehlerstatus und Ergebnisdateien zusammenpassen. Der Workflow zeigt die nötigen Schritte.
6 Minuten
GitLab CI mit Testreports einrichten - Schnellere .NET-CI-Pipelines mit Test Sharding, Teil 3
GitLab liefert die Shard-Nummern direkt an Meziantou.ShardedTest. Für aussagekräftige Ergebnisse im Merge Request braucht es zusätzlich passende Reports. Bei Integrationstests entscheidet die Trennung der Testdaten über zuverlässige Parallelläufe.
6 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige