Een implementatiestack maken

Voltooid

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.

Een afbeelding die een toepassing weergeeft en die wordt beheerd door een implementatiestack binnen het bereik van een resourcegroep.

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 stackverschillen 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 stackis 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.

Een schermopname van Azure Portal met de instellingen van een resourcegroep en waar u implementatiestacks kunt vinden.

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.

Een schermopname van Azure Portal met de eigenschappen van een implementatiestack, inclusief de beheerde resources.

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.