Freigeben über


Bereitstellungsstapel

Ein Azure-Bereitstellungsstapel ist eine Ressource, mit der Sie eine Gruppe von Azure-Ressourcen als einzelne, zusammenhängende Einheit verwalten können. Wenn Sie eine Bicep-Datei oder eine ARM-JSON-Vorlage an einen Bereitstellungsstapel übermitteln, werden die vom Stapel verwalteten Ressourcen definiert. Wenn eine Ressource, die zuvor in der Vorlage enthalten war, entfernt wird, wird sie basierend auf dem angegebenen actionOnUnmanage-Verhalten des Bereitstellungsstapels entweder getrennt oder gelöscht. Ähnlich wie bei anderen Azure-Ressourcen kann der Zugriff auf den Bereitstellungsstapel mithilfe der rollenbasierten Zugriffssteuerung in Azure (Azure RBAC) eingeschränkt werden.

Zum Erstellen und Aktualisieren eines Bereitstellungsstapels können Sie die Azure CLI, Azure PowerShell oder das Azure-Portal zusammen mit Bicep-Dateien verwenden. Diese Bicep-Dateien werden in ARM-JSON-Vorlagen transpiliert, die dann vom Stapel als Bereitstellungsobjekt bereitgestellt werden. Der Bereitstellungsstapel bietet zusätzliche Funktionen, die über die vertrauten Bereitstellungsressourcen hinausgehen und als Obermenge dieser Funktionen dienen.

Microsoft.Resources/deploymentStacks ist der Ressourcentyp für Bereitstellungsstapel. Er besteht aus einer Hauptvorlage, die bereichsübergreifend 1:n-Aktualisierungen für die darin beschriebenen Ressourcen durchführen und alle unerwünschten Änderungen an diesen Ressourcen blockieren kann.

Wenn Sie Ihre Bereitstellung planen und bestimmen, welche Ressourcengruppen Teil desselben Stapels sein sollen, ist es wichtig, den Verwaltungslebenszyklus dieser Ressourcen zu berücksichtigen, der das Erstellen, Aktualisieren und Löschen umfasst. Nehmen Sie beispielsweise an, dass Sie ein paar Test-VMs für verschiedene Anwendungsteams in verschiedenen Ressourcengruppenbereichen bereitstellen müssen. In diesem Fall kann ein Bereitstellungsstapel verwendet werden, um diese Testumgebungen zu erstellen und die Konfigurationen der Test-VMs durch nachfolgende Updates des Bereitstellungsstapels zu aktualisieren. Nach Abschluss des Projekts kann es erforderlich sein, alle Ressourcen zu entfernen oder zu löschen, die erstellt wurden, z. B. die Test-VMs. Durch die Verwendung eines Bereitstellungsstapels können die verwalteten Ressourcen leicht entfernt werden, indem das entsprechende Löschflag angegeben wird. Dieser optimierte Ansatz spart Zeit während der Umgebungsbereinigung, da er eine einzelne Aktualisierung der Stapelressource umfasst, anstatt jede Test-VM in verschiedenen Ressourcengruppenbereichen einzeln zu ändern oder zu entfernen.

Der Bereitstellungsstapel benötigt Azure PowerShell, Version 12.0.0 oder höher, oder die Azure CLI, Version 2.61.0 oder höher.

Um Ihren ersten Bereitstellungsstapel zu erstellen, arbeiten Sie Schnellstart: Erstellen eines Bereitstellungsstapels durch.

Gründe für das Verwenden von Bereitstellungsstapeln

Bereitstellungsstapel bieten die folgenden Vorteile:

  • Optimierte Bereitstellung und Verwaltung von Ressourcen in verschiedenen Bereichen als vereinheitlichte Entität
  • Verhindern unerwünschter Änderungen an verwalteten Ressourcen durch Ablehnungseinstellungen
  • Effiziente Umgebungsbereinigung mithilfe von Löschflags während Aktualisierungen des Bereitstellungsstapels
  • Verwendung von Standardvorlagen wie Bicep, ARM-Vorlagen oder Vorlagenspezifikationen für Ihre Bereitstellungsstapel

Bekannte Einschränkungen

  • Implizit erstellte Ressourcen werden nicht vom Stapel verwaltet. Daher sind keine Ablehnungszuweisungen oder Bereinigungen möglich.
  • Ablehnungszuweisungen unterstützen keine Tags.
  • Ablehnungszuweisungen werden im Verwaltungsgruppenbereich nicht unterstützt. Sie werden jedoch in einem Verwaltungsgruppenstapel unterstützt, wenn die Bereitstellung auf den Abonnementbereich verweist.
  • Bereitstellungsstapel können Schlüsseltresorgeheimnisse nicht löschen. Wenn Sie Schlüsseltresorgeheimnisse aus einer Vorlage entfernen, stellen Sie sicher, dass Sie auch den Befehl zum Aktualisieren/Löschen des Bereitstellungsstapels mit dem Trennmodus ausführen.

Bekannte Probleme

  • Beim Löschen von Ressourcengruppen werden Ablehnungszuweisungen derzeit umgangen. Beim Erstellen eines Bereitstellungsstapels im Ressourcengruppenbereich enthält die Bicep-Datei nicht die Definition für die Ressourcengruppe. Trotz der Einstellung „Ablehnungszuweisung“ ist es möglich, die Ressourcengruppe und den enthaltenen Stapel zu löschen. Wenn jedoch eine Sperre für eine Ressource innerhalb der Gruppe aktiv ist, schlägt der Löschvorgang fehl.
  • Was-wäre-wenn wird noch nicht unterstützt.
  • Ein Verwaltungsgruppenbereichsstapel ist auf die Bereitstellung in einer anderen Verwaltungsgruppe beschränkt. Er kann nur für die Verwaltungsgruppe des Stapels selbst oder für ein untergeordnetes Abonnement bereitgestellt werden.
  • Die Hilfe zu PowerShell-Befehlen listet einen DeleteResourcesAndResourcesGroups-Wert für den ActionOnUnmanage-Schalter auf. Wenn dieser Wert verwendet wird, trennt der Befehl die verwalteten Ressourcen und die Ressourcengruppen. Dieser Wert wird im nächsten Update entfernt. Verwenden Sie diesen Wert nicht.
  • In einigen Fällen geben die Cmdlets „New“ und „Set“ von Azure PowerShell möglicherweise einen generischen Vorlagenvalidierungsfehler zurück, für den es keine eindeutige Aktion für die Fehlerbehebung gibt. Dieser Fehler wird im nächsten Release behoben, aber wenn der Fehler unklar ist, können Sie das Cmdlet im Debugmodus ausführen, um einen detaillierteren Fehler in der unformatierten Antwort anzuzeigen.

Integrierte Rollen

Warnung

Die Durchsetzung der RBAC-Berechtigung Microsoft.Resources/deploymentStacks/manageDenySetting/action wird in allen Regionen eingeführt, einschließlich Government Clouds.

Es gibt zwei integrierte Rollen für den Bereitstellungsstapel:

  • Mitwirkender am Azure-Bereitstellungsstapel: Ermöglicht Benutzern das Verwalten von Bereitstellungsstapeln, kann jedoch keine Ablehnungszuweisungen innerhalb der Bereitstellungsstapel erstellen oder löschen.
  • Besitzer des Azure-Bereitstellungsstapels: Ermöglicht Benutzern das Verwalten von Bereitstellungsstapeln, einschließlich derer mit Ablehnungszuweisungen.

Erstellen von Bereitstellungsstapeln

Eine Bereitstellungsstapelressource kann im Ressourcengruppen-, Abonnement- oder Verwaltungsgruppenbereich erstellt werden. Die an einen Bereitstellungsstapel übergebene Vorlage definiert die Ressourcen, die im für die Vorlagenbereitstellung angegebenen Zielbereich erstellt oder aktualisiert werden sollen.

  • Ein Stapel im Ressourcengruppenbereich kann die übergebene Vorlage im selben Ressourcengruppenbereich bereitstellen, in dem sich der Bereitstellungsstapel befindet.
  • Ein Stapel im Abonnementbereich kann die übergebene Vorlage in einem Ressourcengruppenbereich (sofern angegeben) oder im selben Abonnementbereich bereitstellen, in dem sich der Bereitstellungsstapel befindet.
  • Ein Stapel im Verwaltungsgruppenbereich kann die übergebene Vorlage im angegebenen Abonnementbereich bereitstellen.

Es ist wichtig zu beachten, dass dort, wo ein Bereitstellungsstapel vorhanden ist, auch die Ablehnungszuweisung mit möglichen Ablehnungseinstellungen erstellt wird. Wenn Sie beispielsweise einen Bereitstellungsstapel im Abonnementbereich erstellen, der die Vorlage im Ressourcengruppenbereich und im Ablehnungseinstellungsmodus DenyDelete bereitstellt, können Sie verwaltete Ressourcen ganz einfach in der angegebenen Ressourcengruppe bereitstellen und Löschversuche für diese Ressourcen blockieren. Mit diesem Ansatz erhöhen Sie auch die Sicherheit des Bereitstellungsstapels, indem Sie ihn auf Abonnementebene und nicht auf Ressourcengruppenebene trennen. Durch diese Trennung wird sichergestellt, dass die Entwicklerteams, die mit den bereitgestellten Ressourcen arbeiten, nur Sichtbarkeit und Schreibzugriff auf die Ressourcengruppen haben, während der Bereitstellungsstapel auf einer höheren Ebene isoliert bleibt. Dadurch wird die Anzahl der Benutzer minimiert, die einen Bereitstellungsstapel bearbeiten und Änderungen an seiner Ablehnungszuweisung vornehmen können. Weitere Informationen finden Sie unter Schützen einer verwalteten Ressource vor dem Löschen.

Die „create-stack“-Befehle können auch verwendet werden, um Bereitstellungsstapel zu aktualisieren.

So erstellen Sie einen Bereitstellungsstapel im Ressourcengruppenbereich

New-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

So erstellen Sie einen Bereitstellungsstapel im Abonnementbereich

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentResourceGroupName "<resource-group-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Der DeploymentResourceGroupName-Parameter gibt die Ressourcengruppe an, die zum Speichern der verwalteten Ressourcen verwendet wird. Wenn der Parameter nicht angegeben ist, werden die verwalteten Ressourcen im Abonnementbereich gespeichert.

So erstellen Sie einen Bereitstellungsstapel im Verwaltungsgruppenbereich

New-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentSubscriptionId "<subscription-id>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Der deploymentSubscriptionId-Parameter gibt das Abonnement an, das zum Speichern der verwalteten Ressourcen verwendet wird. Wenn der Parameter nicht angegeben ist, werden die verwalteten Ressourcen im Verwaltungsgruppenbereich gespeichert.

Auflisten von Bereitstellungsstapeln

So listen Sie Ressourcen des Bereitstellungsstapels im Ressourcengruppenbereich auf

Get-AzResourceGroupDeploymentStack `
  -ResourceGroupName "<resource-group-name>"

So listen Sie Ressourcen des Bereitstellungsstapels im Abonnementbereich auf

Get-AzSubscriptionDeploymentStack

So listen Sie Ressourcen des Bereitstellungsstapels im Verwaltungsgruppenbereich auf

Get-AzManagementGroupDeploymentStack `
  -ManagementGroupId "<management-group-id>"

Aktualisieren von Bereitstellungsstapeln

Zum Aktualisieren eines Bereitstellungsstapels, was das Hinzufügen oder Löschen einer verwalteten Ressource umfassen kann, müssen Sie Änderungen an den zugrunde liegenden Bicep-Dateien vornehmen. Nachdem die Änderungen vorgenommen wurden, haben Sie zwei Optionen zum Aktualisieren des Bereitstellungsstapels: Ausführen des update-Befehls oder erneutes Ausführen des create-Befehls.

Die Liste der verwalteten Ressourcen kann vollständig über das IaC-Entwurfsmuster (Infrastructure-as-Code) gesteuert werden.

Verwenden des Set-Befehls

So aktualisieren Sie einen Bereitstellungsstapel im Ressourcengruppenbereich

Set-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

So aktualisieren Sie einen Bereitstellungsstapel im Abonnementbereich

Set-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentResourceGroupName "<resource-group-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Der DeploymentResourceGroupName-Parameter gibt die Ressourcengruppe an, die zum Speichern der Ressourcen des Bereitstellungsstapels verwendet wird. Wenn Sie keinen Ressourcengruppennamen angeben, erstellt der Bereitstellungsstapeldienst eine neue Ressourcengruppe für Sie.

So aktualisieren Sie einen Bereitstellungsstapel im Verwaltungsgruppenbereich

Set-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentSubscriptionId "<subscription-id>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Den Befehl „Neu“ verwenden

Sie erhalten eine Warnung ähnlich der folgenden:

The deployment stack 'myStack' you're trying to create already exists in the current subscription/management group/resource group. Do you want to overwrite it? Detaching: resources, resourceGroups (Y/N)

Weitere Informationen finden Sie unter Erstellen von Bereitstellungsstapeln.

Steuern des Trennens und Löschens

Eine getrennte (oder nicht verwaltete) Ressource bezieht sich auf eine Ressource, die vom Bereitstellungsstapel weder nachverfolgt noch verwaltet wird, in Azure aber noch vorhanden ist.

Um Azure anzuweisen, nicht verwaltete Ressourcen zu löschen, aktualisieren Sie den Stapel mit dem „create stack“-Befehl mit folgendem Schalter. Weitere Informationen finden Sie unter Erstellen eines Bereitstellungsstapels.

Verwenden Sie den Schalter ActionOnUnmanage, um zu definieren, was mit Ressourcen geschieht, die nach dem Aktualisieren oder Löschen eines Stapels nicht mehr verwaltet werden. Zulässige Werte sind:

  • deleteAll: Verwenden Sie für verwaltete Ressourcen und Ressourcengruppen löschen anstatt trennen.
  • deleteResources: Verwenden Sie nur für verwaltete Ressourcen löschen anstatt trennen.
  • detachAll: trennt sowohl die verwalteten Ressourcen als auch die Ressourcengruppen.

Zum Beispiel:

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "none" `
  -ActionOnUnmanage "deleteAll" 

Warnung

Beim Löschen von Ressourcengruppen, bei denen der Schalter für die Aktion beim Entfernen aus der Verwaltung auf DeleteAll festgelegt ist, werden auch die verwalteten Ressourcengruppen sowie alle darin enthaltenen Ressourcen gelöscht.

Behandeln des Fehlers „Stapel nicht synchronisiert“

Beim Aktualisieren oder Löschen eines Bereitstellungsstapels tritt möglicherweise der folgende Fehler auf, der angibt, dass die Stapelressourcenliste nicht ordnungsgemäß synchronisiert ist.

The deployment stack '{0}' may not have an accurate list of managed resources. To ensure no resources are accidentally deleted, please check that the managed resource list does not have any additional values. If there is any uncertainty, we recommend redeploying the stack with the same template and parameters as the current iteration. To bypass this warning, please specify the 'BypassStackOutOfSyncError' flag.

Sie können eine Liste der Ressourcen aus dem Azure-Portal abrufen oder die aktuell bereitgestellte Bicep-Datei mit denselben Parametern erneut bereitstellen. Die Ausgabe zeigt die verwalteten Ressourcen:

...
Resources: /subscriptions/9e8db52a-71bc-4871-9007-1117bf304622/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk
           /subscriptions/9e8db52a-71bc-4871-9007-1117bf304622/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk

Nachdem Sie die Liste der Ressourcen im Stapel überprüft haben, können Sie den Befehl mit der Option BypassStackOutOfSyncError in Azure PowerShell (oder bypass-stack-out-of-sync-error in der Azure CLI) erneut ausführen. Diese Option sollte nur verwendet werden, nachdem Sie die Liste der Ressourcen im Stapel gründlich überprüft haben, bevor Sie den Befehl erneut ausführen. Diese Option sollte niemals standardmäßig verwendet werden.

Löschen von Bereitstellungsstapeln

Der Schalter ActionOnUnmanage definiert die Aktion für die Ressourcen, die nicht mehr verwaltet werden. Der Schalter weist die folgenden Werte auf:

  • DeleteAll: Löscht sowohl die Ressourcen als auch die Ressourcengruppen.
  • DeleteResources: Löscht nur die Ressourcen.
  • DetachAll: Trennen Sie die Ressourcen.

Selbst wenn Sie die Option „delete all“ angeben, werden sowohl die nicht verwalteten Ressourcen als auch die Ressourcengruppe selbst nicht gelöscht, wenn in der Ressourcengruppe, in der sich der Bereitstellungsstapel befindet, nicht verwaltete Ressourcen vorhanden sind.

So löschen Sie Ressourcen des Bereitstellungsstapels im Ressourcengruppenbereich

Remove-AzResourceGroupDeploymentStack `
  -name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"

So löschen Sie Ressourcen des Bereitstellungsstapels im Abonnementbereich

Remove-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"

So löschen Sie Ressourcen des Bereitstellungsstapels im Verwaltungsgruppenbereich

Remove-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ManagementGroupId "<management-group-id>" `
  -ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"

Anzeigen verwalteter Ressourcen im Bereitstellungsstapel

Der Bereitstellungsstapeldienst verfügt noch nicht über eine grafische Azure-Portalbenutzeroberfläche (GUI). Um die verwalteten Ressourcen in einem Bereitstellungsstapel anzuzeigen, verwenden Sie die folgenden Azure PowerShell/Azure CLI-Befehle:

So zeigen Sie verwaltete Ressourcen im Ressourcengruppenbereich an

(Get-AzResourceGroupDeploymentStack -Name "<deployment-stack-name>" -ResourceGroupName "<resource-group-name>").Resources

So zeigen Sie verwaltete Ressourcen im Abonnementbereich an

(Get-AzSubscriptionDeploymentStack -Name "<deployment-stack-name>").Resources

So zeigen Sie verwaltete Ressourcen im Verwaltungsgruppenbereich an

(Get-AzManagementGroupDeploymentStack -Name "<deployment-stack-name>" -ManagementGroupId "<management-group-id>").Resources

Hinzufügen von Ressourcen zum Bereitstellungsstapel

Um eine verwaltete Ressource hinzuzufügen, fügen Sie den zugrunde liegenden Bicep-Dateien die Ressourcendefinition hinzu, und führen Sie dann den update-Befehl aus, oder führen Sie erneut den create-Befehl aus. Weitere Informationen finden Sie unter Aktualisieren von Bereitstellungsstapeln.

Löschen verwalteter Ressourcen aus dem Bereitstellungsstapel

Um eine verwaltete Ressource zu löschen, entfernen Sie die Ressourcendefinition aus den zugrunde liegenden Bicep-Dateien, und führen Sie dann den update-Befehl aus, oder führen Sie erneut den create-Befehl aus. Weitere Informationen finden Sie unter Aktualisieren von Bereitstellungsstapeln.

Schützen verwalteter Ressourcen vor dem Löschen

Beim Erstellen eines Bereitstellungsstapels ist es möglich, den verwalteten Ressourcen einen bestimmten Berechtigungstyp zuzuweisen, der deren Löschung durch nicht autorisierte Sicherheitsprinzipale verhindert. Diese Einstellungen werden als Ablehnungseinstellungen bezeichnet. Sie möchten den Stapel in einem übergeordneten Bereich speichern.

Hinweis

Die neueste Version erfordert spezifische Berechtigungen im Stapelbereich für Folgendes:

  • Erstellen oder aktualisieren Sie einen Bereitstellungsstapel, und legen Sie die Ablehnungseinstellung auf einen anderen Wert als „Keine“ fest.
  • Aktualisieren oder löschen Sie einen Bereitstellungsstapel mit einer vorhandenen Ablehnungseinstellung eines anderen Elements als „Keine“.

Verwenden Sie integrierte Rollen, um die Berechtigungen zu erteilen.

Azure PowerShell enthält die folgenden Parameter, um die Ablehnungszuweisung anzupassen:

  • DenySettingsMode: Definiert die Vorgänge, die für die verwalteten Ressourcen verboten sind, um sie vor nicht autorisierten Sicherheitsprinzipalen zu schützen, die versuchen, sie zu löschen oder zu aktualisieren. Diese Einschränkung gilt für alle Personen, es sei denn, der Zugriff wurde explizit gewährt. Diese Werte schließen Folgendes ein: None, DenyDelete und DenyWriteAndDelete.
  • DenySettingsApplyToChildScopes: Ablehnungseinstellungen werden auf geschachtelte Ressourcen unter verwalteten Ressourcen angewendet.
  • DenySettingsExcludedAction: Liste der rollenbasierten Verwaltungsvorgänge, die von den Ablehnungseinstellungen ausgeschlossen sind. Bis zu 200 Aktionen sind zulässig.
  • DenySettingsExcludedPrincipal: Liste der von der Sperre ausgeschlossenen Microsoft Entra-Prinzipal-IDs. Bis zu fünf Prinzipale sind zulässig.

So wenden Sie Ablehnungseinstellungen im Ressourcengruppenbereich an

New-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "denyDelete" `
  -DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

So wenden Sie Ablehnungseinstellungen im Abonnementbereich an

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "denyDelete" `
  -DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Verwenden Sie den DeploymentResourceGroupName-Parameter, um den Namen der Ressourcengruppe anzugeben, in der der Bereitstellungsstapel erstellt wird. Wenn kein Bereich angegeben wird, wird der Bereich des Bereitstellungsstapels verwendet.

So wenden Sie Ablehnungseinstellungen im Verwaltungsgruppenbereich an

New-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "denyDelete" `
  -DenySettingsExcludedActions "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Verwenden Sie den DeploymentSubscriptionId -Parameter, um die Abonnement-ID anzugeben, unter der der Bereitstellungsstapel erstellt wird. Wenn kein Bereich angegeben wird, wird der Bereich des Bereitstellungsstapels verwendet.

Trennen verwalteter Ressourcen vom Bereitstellungsstapel

Standardmäßig trennen Bereitstellungsstapel nicht verwaltete Ressourcen, anstatt sie zu löschen, wenn sie nicht mehr im Verwaltungsbereich des Stapels befinden. Weitere Informationen finden Sie unter Aktualisieren von Bereitstellungsstapeln.

Exportieren von Vorlagen aus Bereitstellungsstapeln

Sie können die Ressourcen aus einem Bereitstellungsstapel in eine JSON-Ausgabe exportieren. Sie können die Ausgabe in eine Datei umleiten (Pipe).

So exportieren Sie einen Bereitstellungsstapel im Ressourcengruppenbereich

Save-AzResourceGroupDeploymentStack `
   -Name "<deployment-stack-name>" `
   -ResourceGroupName "<resource-group-name>" `

So exportieren Sie einen Bereitstellungsstapel im Abonnementbereich

Save-AzSubscriptionDeploymentStack `
  -name "<deployment-stack-name>"

So exportieren Sie einen Bereitstellungsstapel im Verwaltungsgruppenbereich

Save-AzManagmentGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ManagementGroupId "<management-group-id>"

Nächste Schritte

Eine Schnellstartanleitung finden Sie unter Schnellstart: Erstellen eines Bereitstellungsstapels.