Eine kleine Umgebung kommt mit einem Abonnement und ein paar Ressourcengruppen aus. Eine Firma mit vielen Abonnements braucht Ordnung darüber. Diese Lektion zeigt die drei Ebenen aus der Sicht der Administration: Was Sie mit Ressourcengruppen tun, was einem Abonnement zustoßen kann und wie Verwaltungsgruppen Rechte und Regeln bündeln.

Die Nordlicht Reisen GmbH wächst: ein Abonnement für die Produktion, eines für Entwicklung, eines für Experimente. Die Revision soll überall lesen dürfen, und eine Regel soll für alle gelten.

Vorwissen: Die vier Ebenen (Verwaltungsgruppe, Abonnement, Ressourcengruppe, Ressource) und was Vererbung bedeutet, erklärt „AZ-900 kompakt“, Lektion 2.2. K3, Lektion 3.1.3, lehrt, Ressourcengruppen nach Lebenszyklus zu schneiden, Namen und Tags zu vergeben, Sperren zu setzen und Ressourcen zu verschieben. Hier steht die Verwaltung, wie die Prüfung sie nennt. Tags, Sperren und Richtlinien im Einzelnen sind Lektion 1.5.

Ressourcengruppen verwalten

Eine Ressourcengruppe ist ein Behälter für zusammengehörige Ressourcen. Im Portal legen Sie sie unter Resource groups, Create an, mit Abonnement, Name und Region. Die Kommandozeile kennt die Befehle:

PowerShell
az group create --name rg-az104-gruppen-a --location germanywestcentral --tags kurs=az104
az group list --query "[].{Name:name, Ort:location}" --output table
az group show --name rg-az104-gruppen-a
az group delete --name rg-az104-gruppen-a --yes --no-wait
PowerShell
New-AzResourceGroup -Name rg-az104-gruppen-a -Location germanywestcentral -Tag @{ kurs = 'az104' }
Get-AzResourceGroup | Select-Object ResourceGroupName, Location
Remove-AzResourceGroup -Name rg-az104-gruppen-a -Force

az group list gibt eine Tabelle mit einer Zeile je Gruppe aus. Mit az group list --tag kurs=az104 zeigen Sie nur Gruppen mit einem Tag. az group update --tags ersetzt alle Tags der Gruppe durch die angegebenen; wer einzelne ergänzen will, nutzt az tag update mit --operation Merge (K3, Lektion 3.1.3). az group export erzeugt aus den Ressourcen einer Gruppe eine Vorlage (--export-format mit arm, bicep oder json); wie Sie sie lesen und nutzen, lehrt Lektion 3.1.

Das Löschen nimmt die Gruppe mit allem darin. az group wait --deleted wartet, bis sie weg ist, az group exists prüft es. Eine Sperre kann das Löschen verhindern (Lektion 1.5).

Ressourcen verschieben

Eine Ressource gehört zu genau einer Gruppe, und Sie können sie in eine andere Gruppe oder in ein anderes Abonnement verschieben. Das Wichtigste aus der Dokumentation:

  • Beide Abonnements müssen zum selben Mandanten gehören. Zu einem anderen Mandanten verschiebt die Funktion nicht.
  • Während des Verschiebens sind Quell- und Zielgruppe gesperrt. Sie können in ihnen nichts anlegen, löschen oder ändern; die vorhandenen Ressourcen laufen weiter. Die Sperre kann bis zu vier Stunden dauern, meist ist es schneller. Auch beteiligen darf sich eine Gruppe nur an einem Verschieben zur Zeit.
  • Die Ressourcen-ID ändert sich, denn sie enthält Abonnement und Gruppe. Skripte, Vorlagen, Dashboards und alles, was die alte ID kennt, müssen Sie anpassen.
  • Die Region ändert sich nicht. Verschieben ändert nur die zugeordnete Gruppe. Ein Umzug in eine andere Region ist etwas anderes (Lektion 3.4).
  • Nur übergeordnete Ressourcen nennen Sie im Befehl; untergeordnete (zum Beispiel Erweiterungen einer VM) ziehen mit. Abhängigkeiten zu anderen Ressourcen können brechen und müssen neu eingerichtet werden.
  • Nicht jeder Ressourcentyp lässt sich verschieben. Eine Schreibschutz-Sperre (ReadOnly) an der Quell- oder Zielgruppe oder am Abonnement verhindert es. Mehr als 800 Ressourcen in einer Anfrage lehnt Azure sofort ab.
  • Eine Ressourcengruppe selbst lässt sich nicht in ein anderes Abonnement verschieben. Sie verschieben alle Ressourcen in eine Gruppe des anderen Abonnements. Tags, Rollenzuweisungen und Richtlinien wandern nicht mit; Sie setzen sie an der neuen Gruppe selbst.

Im Portal: Öffnen Sie die Gruppe, wählen Sie die Ressourcen, dann Move und eine der drei Möglichkeiten (neue Ressourcengruppe, neues Abonnement, neue Region). Das Portal prüft vorher, ob das Verschieben möglich ist (Validation), und verlangt die Bestätigung, dass Sie Skripte und Werkzeuge anpassen. Auf der Kommandozeile:

PowerShell
$id = az resource show --resource-group rg-az104-gruppen-a --name nsg-az104-gruppen --resource-type "Microsoft.Network/networkSecurityGroups" --query id --output tsv
az resource move --destination-group rg-az104-gruppen-b --ids $id
PowerShell
$ressource = Get-AzResource -ResourceGroupName rg-az104-gruppen-a -Name nsg-az104-gruppen
Move-AzResource -DestinationResourceGroupName rg-az104-gruppen-b -ResourceId $ressource.ResourceId

--ids nimmt eine durch Leerzeichen getrennte Liste von Ressourcen-IDs. Für ein anderes Abonnement kommt --destination-subscription-id dazu (in PowerShell -DestinationSubscriptionId). Schlägt es fehl, nennt die Meldung den Grund, etwa MoveCannotProceedWithResourcesNotInSucceededState (enthält die Quell- oder Zielgruppe ein virtuelles Netz, wird der Zustand aller Ressourcen geprüft, die davon abhängen, auch wenn sie nicht verschoben werden; eine davon ist nicht im Zustand „Succeeded“), MissingMoveDependentResources (eine abhängige Ressource gehört mit in die Anfrage) oder RequestDisallowedByPolicy (eine Richtlinie verbietet die Ressource in der Zielgruppe).