Schnellstart: Erstellen und Bereitstellen eines Bereitstellungsstapels mit Bicep aus Vorlagenspezifikationen (Vorschau)
In diesem Schnellstart wird beschrieben, wie Sie einen Bereitstellungsstapel aus einer Vorlagenspezifikation erstellen.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Azure PowerShell, Version 10.1.0 oder höher, oder Azure CLI, Version 2.50.0 oder höher.
- Visual Studio Code mit der Bicep-Erweiterung.
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 von Vorlagenspezifikationen
Erstellen Sie eine Vorlagenspezifikation mit dem folgenden Befehl.
az group create \
--name 'templateSpecRG' \
--location 'centralus'
az ts create \
--name 'stackSpec' \
--version '1.0' \
--resource-group 'templateSpecRG' \
--location 'centralus' \
--template-file 'main.bicep'
Das Format der Vorlagenspezifikations-ID ist /subscriptions/<subscription-id>/resourceGroups/templateSpecRG/providers/Microsoft.Resources/templateSpecs/stackSpec/versions/1.0
.
Erstellen eines Bereitstellungsstapels
Erstellen Sie einen Bereitstellungsstapel aus der Vorlagenspezifikation.
az group create \
--name 'demoRg' \
--location 'centralus'
id=$(az ts show --name stackSpec --resource-group templateSpecRG --version "1.0" --query "id")
az stack group create \
--name demoStack \
--resource-group 'demoRg' \
--template-spec $id \
--deny-settings-mode 'none'
Überprüfen der Bereitstellung
So listen Sie die bereitgestellten Bereitstellungsstapel auf Abonnementebene 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"
}
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.
Weitere Informationen finden Sie unter Löschen von Bereitstellungsstapeln.
Bereinigen von Ressourcen
Mit dem remove-Befehl werden nur die verwalteten Ressourcen und verwalteten Ressourcengruppen entfernt. Sie müssen die Ressourcengruppe weiterhin löschen.
az group delete --name 'demoRg'