Schnellstart: Erstellen und Bereitstellen eines Bereitstellungsstapels mit Bicep

In diesem Schnellstart wird beschrieben, wie Sie einen Bereitstellungsstapel erstellen.

Voraussetzungen

Erstellen einer Bicep-Datei

Erstellen Sie eine Bicep-Datei, um ein Speicherkonto und ein virtuelles Netzwerk zu erstellen.

param resourceGroupLocation string = resourceGroup().location
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param vnetName string = 'vnet${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: storageAccountName
  location: resourceGroupLocation
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-11-01' = {
  name: vnetName
  location: resourceGroupLocation
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

Speichern Sie die Bicep-Datei als main.bicep.

Erstellen eines Bereitstellungsstapels

In dieser Schnellstartanleitung erstellen Sie den Bereitstellungsstapel im Ressourcengruppenbereich. Sie können den Bereitstellungsstapel auch im Abonnementbereich oder im Verwaltungsgruppenbereich erstellen. Weitere Informationen finden Sie unter Erstellen von Bereitstellungsstapeln.

az group create \
  --name 'demoRg' \
  --location 'centralus'

az stack group create \
  --name demoStack \
  --resource-group 'demoRg' \
  --template-file './main.bicep' \
  --action-on-unmanage 'detachAll' \
  --deny-settings-mode 'none'

Weitere Informationen zu action-on-unmanage und deny-setting-mode finden Sie unter Bereitstellungsstapel.

Überprüfen der Bereitstellung

So listen Sie die bereitgestellten Bereitstellungsstapel auf Ressourcengruppenebene auf:

az stack group show \
  --resource-group 'demoRg' \
  --name 'demoStack'

Die Ausgabe zeigt zwei verwaltete Ressourcen – ein Speicherkonto und ein virtuelles Netzwerk:

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-24051714epybc",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT32.5330364S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
  "location": null,
  "name": "demoStack",
  "outputs": null,
  "parameters": {},
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "demoRg",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
      "resourceGroup": "demoRg",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
      "resourceGroup": "demoRg",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-05-17T14:50:18.382948+00:00",
    "createdBy": "johndoe@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-05-17T14:50:18.382948+00:00",
    "lastModifiedBy": "johndoe@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Sie können die Bereitstellung auch überprüfen, indem Sie die verwalteten Ressourcen im Bereitstellungsstapel auflisten:

az stack group show \
  --name 'demoStack' \
  --resource-group 'demoRg' \
  --output 'json'

Die Ausgabe sieht in etwa wie folgt aus:

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-24051714epybc",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT32.5330364S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
  "location": null,
  "name": "demoStack",
  "outputs": null,
  "parameters": {},
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "demoRg",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
      "resourceGroup": "demoRg",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
      "resourceGroup": "demoRg",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-05-17T14:50:18.382948+00:00",
    "createdBy": "johndoe@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-05-17T14:50:18.382948+00:00",
    "lastModifiedBy": "johndoe@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Nachdem ein Stapel erstellt wurde, können Sie über das Azure-Portal sowohl auf den Stapel selbst als auch auf die ihm zugeordneten verwalteten Ressourcen zugreifen und diese anzeigen. Navigieren Sie zu der Ressourcengruppe, in der der Stapel bereitgestellt wurde, und Sie können auf alle relevanten Informationen und Einstellungen zugreifen.

Screenshot: Bereitstellungsstapel im Azure-Portal

Aktualisieren des Bereitstellungsstapels

Um einen Bereitstellungsstapel zu aktualisieren, können Sie die zugrunde liegende Bicep-Datei ändern und den Befehl zum Erstellen des Bereitstellungsstapels erneut ausführen.

Bearbeiten Sie main.bicep, um den SKU-Namen von Standard_LRS in Standard_GRS zu ändern:

Führen Sie den folgenden Befehl aus:

az stack group create \
  --name 'demoStack' \
  --resource-group 'demoRg' \
  --template-file './main.bicep' \
  --action-on-unmanage 'detachAll' \
  --deny-settings-mode 'none'

Überprüfen Sie im Azure-Portal die Eigenschaften des Speicherkontos, um die Änderung zu bestätigen.

Mit derselben Methode können Sie dem Bereitstellungsstapel eine Ressource hinzufügen oder eine verwaltete Ressource aus dem Bereitstellungsstapel entfernen. Weitere Informationen finden Sie unter Hinzufügen von Ressourcen zu einem Bereitstellungsstapel und Löschen von verwalteten Ressourcen aus einem Bereitstellungsstapel.

Löschen des Bereitstellungsstapels

So löschen Sie den Bereitstellungsstapel und die verwalteten Ressourcen

az stack group delete \
  --name 'demoStack' \
  --resource-group 'demoRg' \
  --action-on-unmanage 'deleteAll'

So löschen Sie den Bereitstellungsstapel, erhalten aber die verwalteten Ressourcen bei:

az stack group delete \
  --name 'demoStack' \
  --resource-group 'demoRg' \
  --action-on-unmanage 'detachAll'

Weitere Informationen finden Sie unter Löschen von Bereitstellungsstapeln.

Mit dem remove-Befehl entfernen Sie ausschließlich verwaltete Ressourcen und verwaltete Ressourcengruppen. Sie sind weiterhin für das Löschen der Ressourcengruppen verantwortlich, die nicht vom Bereitstellungsstapel verwaltet werden.

Bereinigen von Ressourcen

Löschen Sie die nicht verwaltete Ressourcengruppe.

az group delete \
  --name 'demoRg'

Nächste Schritte