Erstellen eines Bereitstellungsstapels

Abgeschlossen

Ein Azure-Bereitstellungsstapel ist eine Sammlung von Azure-Ressourcen, die als einzelne Einheit verwaltet werden können, auch wenn sie mehrere Ressourcengruppen oder Abonnements umfassen.

Sie planen die Bereitstellung der Testversion der neuen Depotanwendung. Sie benötigen weitere Informationen zum Erstellen eines Bereitstellungsstapels und zum Überprüfen der verwalteten Ressourcen.

In dieser Lerneinheit erfahren Sie, wie Sie einen Bereitstellungsstapel erstellen, dessen Bereitstellung überprüfen und alle Bereitstellungsstapel in Ihrer Umgebung auflisten.

Hinweis

Die Befehle in dieser Lerneinheit dienen der Veranschaulichung der Konzepte. Führen Sie die Befehle jetzt noch nicht aus. Sie können das Erlernte in Kürze üben.

Erneute Betrachtung von Bereitstellungsstapeln

Mit Bereitstellungsstapeln ändern Sie die Art und Weise, wie Sie die Organisation von Ressourcen über Ressourcengruppen und Abonnements hinweg betrachten. Mit einem Bereitstellungsstapel können Sie alle Ressourcen gruppieren, aus denen Ihre Anwendung besteht, unabhängig davon, wo sie sich in der Organisationshierarchie Ihrer Azure-Ressourcen befinden. Sie können sie als einzelne Einheit verwalten. Mit Bereitstellungsstapeln können Sie Lebenszyklusvorgänge für die Sammlung von Ressourcen durchführen, aus denen der Stapel besteht.

Eine Grafik, die eine Anwendung und deren verwaltete Ressourcen durch einen ressourcengruppenbezogenen Bereitstellungsstapel darstellt

Stellen Sie sich Bereitstellungsstapel als eine Reihe von Zeigern vor, die die Ressourcen Ihrer Anwendung in einer einzigen Einheit zusammenfassen. Bereitstellungsstapel können in verschiedenen Bereichen erstellt werden, z. B. in Ressourcengruppen, Abonnements und Verwaltungsgruppen.

Ressourcen definieren

Bereitstellungsstapel unterstützen die Verwendung von Bicep-Dateien, ARM JSON-Vorlagen oder Vorlagenspezifikationen zur Definition von Ressourcen in einem Stapel. Wenn Sie einen Bereitstellungsstapel mit der Azure CLI oder Azure PowerShell erstellen, können Sie auf die spezifische Vorlagendatei (Bicep-Datei oder ARM JSON-Vorlage) oder die Vorlagenspezifikation verweisen. Es ist nicht notwendig, dass Sie die Definition Ihrer Ressourcen ändern.

Wir verwenden die folgende Bicep-Datei für unseren ersten Bereitstellungsstapel. Die Datei definiert einen App Service-Plan und eine Web-App. Wenn wir den Bereitstellungsstapel erstellen, werden diese Ressourcen zu verwalteten Ressourcen.

// Parameters
@description('The location for all resources.')
param location string = 'eastus'

@description('The name of the web application.')
param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'

// Variables
@description('The name of the app service plan.')
var appServicePlanName = 'plan-deposits'

// Resource - App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: 'F1'
    capacity: 1
  }
}

// Resource - Web App
resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
  name: webApplicationName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
  }
}

Hinweis

Wie Sie sehen können, enthält der webApplicationName-Parameter die ${uniqueString(resourceGroup().id)}-Syntax. Die uniqueString-Funktion erstellt eine Zeichenfolge basierend auf der ID der Ressourcengruppe und fügt sie webapp-deposits als Suffix hinzu. Viele Azure-Dienste erfordern eindeutige Namen. Diese Funktion hilft beim Generieren eines eindeutigen Namens.

Erstellen eines Bereitstellungsstapels

Das Erstellen und Bereitstellen eines Bereitstellungsstapels und seiner Ressourcen ist nahezu identisch mit einer standardmäßigen Azure-Bereitstellung. Der Vorgang läuft nahezu gleich ab, unabhängig davon, ob Sie die Azure CLI, Azure PowerShell oder eine Infrastruktur als Codepipeline verwenden. Zum Beispiel:

Der Azure CLI-Befehl zur Bereitstellung einer Bicep-Datei in einer Ressourcengruppe lautet:

az deployment group create \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep

Der Azure CLI-Befehl zum Erstellen eines Bereitstellungsstapels auf der Ebene der Ressourcengruppe lautet:

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Beachten Sie, dass die einzigen Änderungen im Befehl die Wörter deployment und stack sowie Unterschiede in den verwendeten Parametern sind. Dies gilt auch für Bereitstellungen von Abonnements und Verwaltungsgruppen.

Hinweis

In späteren Modulen erfahren Sie, wie Sie die Ressourcen eines Bereitstellungsstapels mithilfe von --action-on-unmanage verwalten und unerwünschte Änderungen mithilfe von --deny-settings-mode verhindern.

Der Azure PowerShell-Befehl zur Bereitstellung einer Bicep-Datei in einer Ressourcengruppe lautet:

New-AzResourceGroupDeployment `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep

Der Azure PowerShell-Befehl zur Erstellung eines Bereitstellungsstapels im Bereich der Ressourcengruppe lautet:

New-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep `
    -ActionOnUnmanage DetachAll `
    -DenySettingsMode None

Beachten Sie, dass die einzige Änderung im Befehl das Wort stack und Unterschiede in den verwendeten Parametern sind. Dies gilt auch für Bereitstellungen von Abonnements und Verwaltungsgruppen.

Hinweis

In späteren Modulen erfahren Sie, wie Sie die Ressourcen eines Bereitstellungsstapels mithilfe von -ActionOnUnmanage verwalten und unerwünschte Änderungen mithilfe von -DenySettingsMode verhindern.

Sehen wir uns nun die Erstellung eines Bereitstellungsstapels im Bereich der Ressourcengruppe an.

Verwenden Sie den az stack group create-Befehl, um einen Bereitstellungsstapel mithilfe der Azure CLI zu erstellen. Die folgenden Befehle erstellen zuerst eine Ressourcengruppe namens rg-depositsApplication und dann den Bereitstellungsstapel im Bereich der Ressourcengruppe.

az group create \
    --name rg-depositsApplication \
    --location eastus
az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none

Verwenden Sie den Befehl New-AzResourceGroupDeploymentStack, um einen Bereitstellungsstapel mit Azure PowerShell zu erstellen. Die folgenden Befehle erstellen zuerst eine Ressourcengruppe namens rg-depositsApplication und dann den Bereitstellungsstapel im Bereich der Ressourcengruppe.

New-AzResourceGroup `
    -Name rg-depositsApplication `
    -Location eastus
New-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep `
    -ActionOnUnmanage DetachAll `
    -DenySettingsMode None

Anzeigen von Bereitstellungsstapeln

Ressourcengruppen sind möglicherweise mehrere Bereitstellungsstapel zugeordnet. Sie können Details zu einem bestimmten Bereitstellungsstapel anzeigen, der einer Ressourcengruppe zugeordnet ist.

Um mit der Azure CLI eine bestimmte Ressource des Bereitstellungsstapels anzuzeigen, die einer Ressourcengruppe zugeordnet ist, verwenden Sie den Befehl az stack group show, und geben Sie den Namen des Bereitstellungsstapels und die Zielressourcengruppe an.

az stack group show \
    --resource-group rg-depositsApplication \
    --name stack-deposits

Die Ergebnisse umfassen die Eigenschaften des Bereitstellungsstapels und den Status der verwalteten Ressourcen. Die Ausgabe sollte dem folgenden Abschnitt ähneln:

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "bypassStackOutOfSyncError": null,
  "correlationId": ".",
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT2M53.2734284S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
  "location": null,
  "name": "stack-deposits",
  "outputs": null,
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "rg-depositsApplication",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-01-01T00:00:01.000000+00:00",
    "createdBy": "depositsapplication@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
    "lastModifiedBy": "depositsapplication@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Beachten Sie den Ressourcenabschnitt der Ausgabe. Für jede Ressource werden deren Status als managed, die Ressourcengruppe, die Ressourcen-ID und die Verweigerungseinstellungen angezeigt.

Um mit Azure PowerShell eine bestimmte Ressource des Bereitstellungsstapels anzuzeigen, die einer Ressourcengruppe zugeordnet ist, verwenden Sie den Befehl Get-AzResourceGroupDeploymentStack, und geben Sie den Namen des Bereitstellungsstapels und die Zielressourcengruppe an.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication `
    -Name stack-deposits

Die Ergebnisse umfassen die Eigenschaften des Bereitstellungsstapels und den Status der verwalteten Ressourcen. Die Ausgabe sollte dem folgenden Abschnitt ähneln:

Id                            : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name                          : stack-deposits
ProvisioningState             : succeeded
resourcesCleanupAction        : detach
resourceGroupsCleanupAction   : detach
managementGroupsCleanupAction : detach
CorrelationId                 : .
DenySettingsMode              : none
CreationTime(UTC)             : 1/01/2024 0:00:01 AM
DeploymentId                  : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources                     : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
                                /subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq

Beachten Sie den Ressourcenabschnitt der Ausgabe. Hier werden die vom Bereitstellungsstapel verwalteten Ressourcen definiert. Es wird die vollständige Ressourcen-ID jeder Ressource angezeigt.

Außerdem können Sie Ihre Bereitstellungsstapel im Azure-Portal anzeigen. Sie sind in ihren jeweiligen Bereichen verfügbar. Navigieren Sie zu der Ressourcengruppe, der der Bereitstellungsstapel zugeordnet ist. Unter „Einstellungen“ wird eine Option für Bereitstellungsstapel angezeigt.

Screenshot: Azure-Portal mit den Einstellungen einer Ressourcengruppe und der Angabe, wo Bereitstellungsstapel zu finden sind

Wenn Sie auf „Bereitstellungsstapel“ klicken, werden alle Stapel aufgelistet, die der Ressourcengruppe zugeordnet sind. Wenn Sie auf einen Bereitstellungsstapel klicken, gelangen Sie zur Eigenschaftenseite der Bereitstellungsstapel.

Screenshot: Azure-Portal mit den Eigenschaften eines Bereitstellungsstapels, einschließlich der verwalteten Ressourcen

Auflisten von Bereitstellungsstapeln

Sie können auch alle Bereitstellungsstapel auflisten, die einer bestimmten Ressourcengruppe zugeordnet sind.

Um mit der Azure CLI alle Ressourcen des Bereitstellungsstapels anzuzeigen, die einer Ressourcengruppe zugeordnet sind, verwenden Sie den Befehl az stack group list, und geben Sie die Zielressourcengruppe an.

az stack group list \
    --resource-group rg-depositsApplication

Um mit Azure PowerShell alle Ressourcen des Bereitstellungsstapels anzuzeigen, die einer Ressourcengruppe zugeordnet sind, verwenden Sie den Befehl Get-AzResourceGroupDeploymentStack, und geben Sie die Zielressourcengruppe an.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication

Hinweis

Azure PowerShell verwendet sowohl für das Anzeigen als auch das Auflisten von Vorgängen den Befehl Get-AzResourceGroupDeploymentStack.