Een implementatiestack maken
Een Azure-implementatiestack is een verzameling Azure-resources die als één eenheid kunnen worden beheerd, zelfs als ze meerdere resourcegroepen of abonnementen omvatten.
U bent van plan om de testversie van de nieuwe stortingsaanvraag te implementeren. Meer informatie over het maken van een implementatiestack en het controleren van de beheerde resources.
In deze les leert u hoe u een implementatiestack maakt, de implementatie verifieert en alle implementatiestacks in uw omgeving weergeeft.
Notitie
De opdrachten in deze les worden weergegeven om concepten te illustreren. Voer de opdrachten nog niet uit. U oefent wat u hier binnenkort leert.
Implementatiestacks opnieuw bezocht
Implementatiestacks veranderen hoe u denkt over resourceorganisatie in resourcegroepen en abonnementen. Met een implementatiestack kunt u alle resources groeperen waaruit uw toepassing bestaat, ongeacht waar ze zich in de organisatiehiërarchie van uw Azure-resource bevinden. U kunt ze beheren als één eenheid. Met implementatiestacks kunt u levenscyclusbewerkingen uitvoeren op de verzameling resources waaruit de stack bestaat.
U kunt implementatiestacks beschouwen als een reeks aanwijzers die de resources van uw toepassing in één eenheid groepeert. Implementatiestacks kunnen worden gemaakt op verschillende bereiken, zoals resourcegroepen, abonnementen en beheergroepen.
Resources definiëren
Implementatiestacks ondersteunen het gebruik van Bicep-bestanden, ARM JSON-sjablonen of sjabloonspecificaties voor het definiëren van resources in een stack. Wanneer u een implementatiestack maakt met behulp van de Azure CLI of Azure PowerShell, kunt u verwijzen naar het specifieke sjabloonbestand (Bicep-bestand of ARM JSON-sjabloon) of sjabloonspecificatie. Het is niet nodig om te wijzigen hoe u uw resources definieert.
We gebruiken het volgende Bicep-bestand voor onze eerste implementatiestack. Het bestand definieert een App Service-plan en een web-app. Deze resources worden beheerde resources wanneer we de implementatiestack maken.
// 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
}
}
Notitie
U ziet mogelijk de ${uniqueString(resourceGroup().id)}
syntaxis van de webApplicationName
parameter. De functie uniqueString maakt een tekenreeks op basis van de id van de resourcegroep en voegt deze toe als achtervoegsel aan webapp-deposits
. Voor veel Azure-services zijn unieke namen vereist. Deze functie helpt bij het genereren van een unieke naam.
Een implementatiestack maken
Het maken en implementeren van een implementatiestack en de bijbehorende resources is bijna identiek aan een standaard Azure-implementatie. Of u nu Azure CLI, Azure PowerShell of een infrastructuur als codepijplijn gebruikt, het proces voelt hetzelfde aan. Voorbeeld:
De Azure CLI-opdracht voor het implementeren van een Bicep-bestand in een resourcegroep is:
az deployment group create \
--resource-group rg-depositsApplication \
--template-file ./main.bicep
De Azure CLI-opdracht voor het maken van een implementatiestack binnen het bereik van de resourcegroep is:
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
U ziet dat de enige wijzigingen in de opdracht de woorden deployment
en stack
verschillen in de gebruikte parameters zijn. Hetzelfde geldt voor implementaties voor abonnementen en beheergroepen.
Notitie
In latere modules verkennen we hoe u de resources --action-on-unmanage
van een implementatiestack beheert en hoe u ongewenste wijzigingen kunt voorkomen met behulp van --deny-settings-mode
.
De Azure PowerShell-opdracht voor het implementeren van een Bicep-bestand in een resourcegroep is:
New-AzResourceGroupDeployment `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep
De Azure PowerShell-opdracht voor het maken van een implementatiestack binnen het bereik van de resourcegroep is:
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
U ziet dat de enige wijziging in de opdracht het woord stack
is en verschillen in de gebruikte parameters. Hetzelfde geldt voor implementaties voor abonnementen en beheergroepen.
Notitie
In latere modules verkennen we hoe u de resources -ActionOnUnmanage
van een implementatiestack beheert en hoe u ongewenste wijzigingen kunt voorkomen met behulp van -DenySettingsMode
.
Laten we nu eens kijken naar het maken van een implementatiestack op het bereik van de resourcegroep.
Gebruik de az stack group create
opdracht om een implementatiestack te maken met behulp van Azure CLI. Met de volgende opdrachten maakt u eerst een resourcegroep met de naam rg-depositsApplication
en maakt u vervolgens de implementatiestack op het bereik van de resourcegroep.
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
Als u een implementatiestack wilt maken met behulp van Azure PowerShell, gebruikt u de New-AzResourceGroupDeploymentStack
opdracht. Met de volgende opdrachten maakt u eerst een resourcegroep met de naam rg-depositsApplication
en maakt u vervolgens de implementatiestack op het bereik van de resourcegroep.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Implementatiestacks weergeven
Resourcegroepen hebben mogelijk meerdere implementatiestacks binnen het bereik. U kunt details weergeven over een specifieke implementatiestack die is gericht op een resourcegroep.
Als u een specifieke implementatiestackresource wilt weergeven die is gericht op een resourcegroep met behulp van Azure CLI, gebruikt u de az stack group show
opdracht, waarbij u de naam van de implementatiestack en de doelresourcegroep opgeeft.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
De resultaten bevatten de eigenschappen van de implementatiestack en de status van de beheerde resources. De uitvoer moet bekend zijn in de volgende sectie:
{
"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"
}
Let op de sectie resources van de uitvoer. Voor elke resource wordt de status weergegeven als managed
, de resourcegroep, de resource-id en de instellingen voor weigeren.
Als u een specifieke implementatiestackresource wilt weergeven die is gericht op een resourcegroep met behulp van Azure PowerShell, gebruikt u de Get-AzResourceGroupDeploymentStack
opdracht, waarbij u de naam van de implementatiestack en de doelresourcegroep opgeeft.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
De resultaten bevatten de eigenschappen van de implementatiestack en de status van de beheerde resources. De uitvoer moet bekend zijn in de volgende sectie:
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
Let op de sectie resources van de uitvoer. Hiermee worden de resources gedefinieerd die worden beheerd door de implementatiestack. U ziet de volledige resource-id van elke resource.
U kunt ook implementatiestacks weergeven in Azure Portal. Ze zijn beschikbaar op hun respectieve bereiken. Voor een resourcegroep gaat u naar de resourcegroep waarin de implementatiestack is gericht. Onder Instellingen ziet u een optie voor implementatiestacks.
Wanneer u op implementatiestacks klikt, worden alle stacks vermeld die zijn gericht op de resourcegroep. Als u op een implementatiestack klikt, gaat u naar de eigenschappenpagina van de implementatiestacks.
Implementatiestacks vermelden
U kunt ook alle implementatiestacks weergeven die zijn gericht op een specifieke resourcegroep.
Als u alle implementatiestackresources wilt weergeven die zijn gericht op een resourcegroep met behulp van Azure CLI, gebruikt u de az stack group list
opdracht en geeft u de doelresourcegroep op.
az stack group list \
--resource-group rg-depositsApplication
Als u alle implementatiestackresources wilt weergeven die zijn gericht op een resourcegroep met behulp van Azure PowerShell, gebruikt u de Get-AzResourceGroupDeploymentStack
opdracht en geeft u de doelresourcegroep op.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication
Notitie
Azure PowerShell gebruikt dezelfde opdracht Get-AzResourceGroupDeploymentStack
voor zowel de show- als de lijstbewerkingen.