Share via


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@2022-09-01' = {
  name: storageAccountName
  location: resourceGroupLocation
  kind: 'StorageV2'
  sku: {
    name: 'Standard_LRS'
  }
}

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2022-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' \
  --deny-settings-mode 'none'

Ü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/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Resources/deployments/demoStack-2023-06-08-14-58-28-fd6bb",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT30.1685405S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Resources/deploymentStacks/demoStack",
  "location": null,
  "name": "demoStack",
  "outputs": null,
  "parameters": {},
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "demoRg",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk",
      "resourceGroup": "demoRg",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk",
      "resourceGroup": "demoRg",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2023-06-08T14:58:28.377564+00:00",
    "createdBy": "johndole@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-06-08T14:58:28.377564+00:00",
    "lastModifiedBy": "johndole@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "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/00000000-0000-0000-0000-000000000000/resourceGroups/demoRg/providers/Microsoft.Resources/deployments/demoStack-2023-06-05-20-55-48-38d09",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT29.006353S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/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/00000000-0000-0000-0000-000000000000/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetzu6pnx54hqubm",
      "resourceGroup": "demoRg",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storezu6pnx54hqubm",
      "resourceGroup": "demoRg",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2023-06-05T20:55:48.006789+00:00",
    "createdBy": "johndole@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-06-05T20:55:48.006789+00:00",
    "lastModifiedBy": "johndole@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": null,
  "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' \
  --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' \
  --delete-all

Wenn Sie die Löschbefehle ohne die delete all-Parameter ausführen, werden die verwalteten Ressourcen getrennt, aber nicht gelöscht. Beispiel:

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

Die folgenden Parameter können verwendet werden, um zu steuern, ob Trennen oder Löschen verwendet wird.

  • --delete-all: Löscht sowohl die Ressourcen als auch die Ressourcengruppen.
  • --delete-resources: Löscht nur die Ressourcen.
  • --delete-resource-groups: Löscht nur die Ressourcengruppen. Die Verwendung von delete-resource-groups ist an sich ungültig. delete-resource-groups muss zusammen mit delete-resources verwendet werden.

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