Strukturierung von Bicep-Code in Azure-Infrastrukturprojekten
Erfahre, wie Du Bicep-Code in Azure-Infrastrukturprojekten effektiv strukturieren und organisieren kannst, um zwischen verschiedenen Infrastrukturzielen wie Test- und Produktivumgebungen zu unterscheiden.
Im dritten Teil dieser Artikelserie wird auf Best Practices für die Strukturierung von Bicep-Code in Azure-Infrastrukturprojekten eingegangen. Ein effizientes Management der Infrastruktur für verschiedene Umgebungen (z. B. Test und Produktiv) ist entscheidend für eine reibungslose Zusammenarbeit und ein erfolgreiches Projekt. In diesem Artikel werden Ordnerstrukturen und Codebeispiele gezeigt, um diese Strukturierung zu verdeutlichen.
Ordnerstruktur für Azure-Infrastrukturprojekte
Eine mögliche Ordnerstruktur für ein Azure-Infrastrukturprojekt mit Bicep könnte folgendermaßen aussehen:
bashCopy code
Diese Struktur teilt das Projekt in zwei Hauptbereiche auf:
- Environments: Dieser Ordner enthält Unterordner für jede Umgebung (z. B. dev, test, prod), die jeweils eine Haupt-Bicep-Datei (z. B. 01_main.bicep) enthalten. Diese Haupt-Bicep-Datei ist für die Bereitstellung der Ressourcen in der jeweiligen Umgebung verantwortlich und referenziert wiederverwendbare Module aus dem modules-Ordner.
- Modules: Hier werden wiederverwendbare Bicep-Module gespeichert, die Ressourcen definieren, die in verschiedenen Umgebungen bereitgestellt werden sollen. Jedes Modul kann als eigenständiger Baustein betrachtet werden, der in verschiedenen Umgebungs-Bicep-Dateien wiederverwendet werden kann.
Umgebungsvariable zur Unterscheidung von Infrastrukturzielen
Um zwischen verschiedenen Infrastrukturzielen wie Test- und Produktivumgebungen zu unterscheiden, können Umgebungsvariablen in den Bicep-Dateien verwendet werden. Zum Beispiel kann eine Variable environment in der Haupt-Bicep-Datei für jede Umgebung definiert werden:
bicepCopy code
bicepCopy code
Anschließend kann diese Variable in den Bicep-Dateien verwendet werden, um Ressourcen entsprechend der Umgebung zu konfigurieren. Beispielsweise könnte die environment-Variable verwendet werden, um den Namen einer Storage Account-Ressource zu konfigurieren:
bicepCopy code
In diesem Beispiel wird der Name der Storage Account-Ressource basierend auf der environment-Variable erstellt, sodass für jede Umgebung (dev, test, prod) ein unterschiedlicher Storage Account erstellt wird.
Verwendung von Modulen in verschiedenen Umgebungen
Bicep-Module können in verschiedenen Umgebungen wiederverwendet werden, indem sie in den Haupt-Bicep-Dateien der jeweiligen Umgebungen referenziert werden. Zum Beispiel könnte ein Modul network.bicep im modules-Ordner erstellt werden, das ein virtuelles Netzwerk und eine Subnetz-Ressource definiert:
bicepCopy code