Module Registry¶
Die Seite Module Registry listet die Terraform-Module auf, die deine Organisation in einer privaten Modul-Registry veröffentlicht, mit ihren Versionen und Download-Links. Sie ermöglicht es einem Workload-Team, das freigegebene Modul für eine Ressource zu finden und eine Version zu wählen, ohne das Portal zu verlassen.
Die Seite erscheint im Menü nur, wenn das Feature-Flag features.moduleRegistry aktiv ist. Das Portal hostet die Module nicht selbst, es liest sie aus der Registry, die du konfigurierst.
Was du tun kannst¶
| Aktion | Detail |
|---|---|
| Module durchsuchen | Die Liste zeigt jedes Modul als namespace/name/provider |
| Versionen ansehen | Jedes Modul hat eine Liste veröffentlichter Versionen, mit README und Changelog pro Version |
| Download | Eine Version wird als <namespace>-<name>-<provider>-<version>.zip heruntergeladen |
| Eine Version hochladen oder löschen | Nur wenn das zweite Flag, features.moduleRegistryUpdate, aktiv ist. Sonst antwortet das Portal mit HTTP 403 |
Standardmäßig nur lesend
Hochladen und Löschen sind vom Durchsuchen getrennt. Ein Team, das nur nachschlagen will, braucht das Update-Flag nie.
Wie es funktioniert¶
Das Portal-Backend ruft die Registry mit einem Bearer-Token auf. Es fordert das Token mit seiner eigenen Managed Identity (DefaultAzureCredential) für den konfigurierten Token-Scope an. Das Backend stellt dann zwei Routen für die Web-App bereit:
| Route | Zweck |
|---|---|
GET /api/module-registry/terraform/modules |
Module auflisten |
GET .../terraform/modules/<ns>/<name>/<provider>/versions |
Versionen eines Moduls auflisten |
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/readme |
Das README einer Version lesen |
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/changelog |
Den Changelog einer Version lesen |
GET .../terraform/modules/<ns>/<name>/<provider>/<version>/download |
Eine Version herunterladen |
POST und DELETE auf .../<ns>/<name>/<provider>/<version> |
Eine Version hochladen oder löschen (braucht das Update-Flag) |
Die Registry muss daher Entra-ID-Tokens für die Identität des Portals akzeptieren. Welches Registry-Produkt du nutzt, liegt außerhalb des Umfangs dieser Seite. Das Portal spricht mit einer Registry, die das Terraform-Module-Registry-Protokoll bereitstellt.
Einrichtung¶
Für das Plattform-Team. Die Konfiguration liegt in den App-Einstellungen der Umgebung:
| Einstellung | Zweck |
|---|---|
features.moduleRegistry |
Zeigt die Seite und aktiviert das Backend |
features.moduleRegistryUpdate |
Aktiviert Hochladen und Löschen |
moduleRegistry.baseUrl (App-Einstellung MODULE_REGISTRY_BASE_URL) |
URL der Registry |
moduleRegistry.tokenScope (App-Einstellung MODULE_REGISTRY_TOKEN_SCOPE) |
Scope für die Token-Anfrage |
moduleRegistry.tenantId (App-Einstellung MODULE_REGISTRY_TENANT_ID, optional) |
Tenant, bei dem das Token angefordert wird, wenn er vom Home-Tenant abweicht |
Ist die Registry nur über ein privates Netzwerk erreichbar, braucht der App Service eine Route dorthin über die VNet-Integration der Umgebung. Siehe Architektur.
Verwandt¶
- Konfiguration
- Managed Templates für die Templates, die solche Module verwenden