Delen via


Azure-implementatiestapels maken en implementeren in Bicep

Een Azure-implementatiestack is een resource waarmee u een groep Azure-resources kunt beheren als één, samenhangende eenheid. Wanneer u een Bicep-bestand of een Azure Resource Manager JSON-sjabloon (ARM JSON-sjabloon) naar een implementatiestack verzendt, definieert u de resources die door de stack worden beheerd. Als u een resource uit de sjabloon verwijdert, kan deze worden losgekoppeld of verwijderd op basis van het opgegeven actionOnUnmanage-gedrag van de implementatiestack. U kunt de toegang tot de implementatiestack beperken met behulp van op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC), vergelijkbaar met andere Azure-resources.

Als u een implementatiestack wilt maken en bijwerken, gebruikt u de Azure CLI, Azure PowerShell of Azure Portal met Bicep-bestanden. De stack transpileert deze Bicep-bestanden in ARM JSON-sjablonen en implementeert deze als een implementatieobject. De implementatiestack biedt aanvullende mogelijkheden buiten de vertrouwde implementatiebronnen en is een superset van deze mogelijkheden.

Microsoft.Resources/deploymentStacks is het resourcetype voor implementatiestacks. Het bestaat uit een hoofdsjabloon dat één-op-veel updates kan uitvoeren over verschillende domeinen voor de resources die het beschrijft en ongewenste wijzigingen van deze resources kan blokkeren.

Bij het plannen van uw implementatie en het bepalen van welke resourcegroepen deel moeten uitmaken van dezelfde stack, moet u rekening houden met de levenscyclus van deze resources, waaronder het maken, bijwerken en verwijderen van resources. U moet bijvoorbeeld een aantal virtuele testmachines inrichten voor verschillende toepassingsteams binnen verschillende resourcegroepbereiken. U kunt een implementatiestack gebruiken om deze testomgevingen te maken en de configuraties van de virtuele testmachine bij te werken via volgende updates voor de implementatiestack. Nadat u het project hebt voltooid, moet u mogelijk alle resources die u hebt gemaakt, zoals de virtuele testmachines, verwijderen. Gebruik een implementatiestack en geef de juiste verwijdervlag op om beheerde resources te verwijderen. Deze gestroomlijnde benadering bespaart tijd tijdens het opschonen van de omgeving, omdat er één update voor de stackresource nodig is in plaats van elke virtuele testmachine afzonderlijk te wijzigen of te verwijderen in verschillende resourcegroepbereiken.

Implementatiestacks vereisen Azure PowerShell versie 12.0.0 of hoger of Azure CLI versie 2.61.0 of hoger.

Als u uw eerste implementatiestack wilt maken, voert u de quickstart uit: een implementatiestack maken.

Waarom implementatiestacks gebruiken?

Implementatiestapels bieden de volgende voordelen:

  • Gestroomlijnde inrichting en beheer van resources binnen verschillende niveaus als één uniforme entiteit.
  • Voorkomen van ongewenste wijzigingen in beheerde resources via instellingen voor weigeren.
  • Efficiënt opschonen van omgevingen met behulp van verwijdervlagmen tijdens implementatiestackupdates.
  • Gebruik van standaardsjablonen zoals Bicep, ARM-sjablonen of sjabloonspecificaties voor uw implementatiestacks.

Bekende beperkingen

  • Er is een limiet van 800 implementatiestacks die binnen één scope kunnen worden gemaakt.
  • Er kunnen maximaal 2.000 weigeringstoewijzingen bestaan binnen een bepaald bereik.
  • De implementatiestack beheert geen impliciet gemaakte resources. Daarom kunt u geen weigeringstoewijzingen gebruiken of deze resources opschonen.
  • Weigeringstoewijzingen bieden geen ondersteuning voor tags.
  • Ontzeggingstoewijzingen worden niet ondersteund op het niveau van de beheergroep. Ze worden echter ondersteund in een beheergroepstack als de implementatie is gericht op het abonnementsbereik.
  • Implementatiestacks kunnen Key Vault-geheimen niet verwijderen. Als u sleutelkluisgeheimen uit een sjabloon verwijdert, moet u ook de opdracht update/delete van de implementatiestack uitvoeren met de loskoppelmodus.

Bekende problemen

  • Als u resourcegroepen verwijdert, worden weigeringstoewijzingen momenteel overgeslagen. Wanneer u een implementatiestapel binnen het bereik van de resourcegroep maakt, bevat het Bicep-bestand niet de definitie van de resourcegroep. Ondanks de instelling voor weigeringstoewijzing kunt u de resourcegroep en de bijbehorende ingesloten stack verwijderen. Als een vergrendeling echter actief is voor een resource in de groep, mislukt de verwijderbewerking.
  • De What-if-ondersteuning is nog niet beschikbaar.
  • Een stack met de scope van een beheergroep kan niet worden geïmplementeerd in een andere beheergroep. Het kan alleen worden geïmplementeerd in de beheergroep van de stack zelf of in een onderliggend abonnement.
  • De helpinformatie van de Azure PowerShell-opdracht vermeldt een DeleteResourcesAndResourcesGroups-waarde voor de ActionOnUnmanage-schakelaar. Wanneer u deze waarde gebruikt, worden met de opdracht de beheerde resources en de resourcegroepen losgekoppeld. Deze waarde wordt verwijderd in de volgende update. Gebruik deze waarde niet.
  • In sommige gevallen kunnen de cmdlets New en Set Azure PowerShell een algemene sjabloonvalidatiefout retourneren die niet duidelijk kan worden opgevolgd. Deze fout wordt opgelost in de volgende release. Als de fout niet duidelijk is, voert u de cmdlet uit in de foutopsporingsmodus om een gedetailleerdere fout in het onbewerkte antwoord te zien.
  • Microsoft Graph-provider biedt geen ondersteuning voor het implementeren van stacks.

Ingebouwde rollen

Waarschuwing

Afdwingen van de RBAC-machtiging Microsoft.Resources/deploymentStacks/manageDenySetting/action wordt geïmplementeerd in verschillende regio's, waaronder Government Clouds.

Er zijn twee ingebouwde rollen voor de implementatiestack:

  • Inzender voor Azure Deployment Stack: gebruikers kunnen implementatiestacks beheren, maar kunnen geen weigeringstoewijzingen binnen de implementatiestacks maken of verwijderen.
  • Eigenaar van Azure Deployment Stack: gebruikers kunnen implementatiestacks beheren, inclusief gebruikers met weigeringstoewijzingen.

Implementatiestacks maken

U kunt een implementatiestack-resource maken binnen de reikwijdte van de resourcegroep, het abonnement of de beheergroep. De sjabloon die u opgeeft met een implementatie-stack definieert de resources die gemaakt of bijgewerkt moeten worden in de doelscope.

  • Een stack binnen het bereik van de resourcegroep kan de sjabloon implementeren in dezelfde resourcegroep waar de implementatiestack bestaat.
  • Een stack op abonnementsniveau kan de sjabloon implementeren in een resourcegroep of binnen hetzelfde abonnement waar de implementatiestack aanwezig is.
  • Een stack binnen het bereik van de beheergroep kan de sjabloon implementeren in het abonnement.

Het is belangrijk om te weten dat waar er een implementatiestack bestaat, er ook de weigeringstoewijzing wordt gecreëerd met de instellingen voor weigeren-mogelijkheden. Als u bijvoorbeeld een implementatiestack maakt op abonnementsbereik waarmee de sjabloon in het resourcegroepbereik wordt geïmplementeerd en met instellingenmodus DenyDelete Weigeren, kunt u eenvoudig beheerde resources voorzien van de opgegeven resourcegroep en verwijderingspogingen voor die resources blokkeren. Met deze aanpak kunt u de beveiliging van de implementatiestack verbeteren door deze op abonnementsniveau te scheiden in plaats van op resourcegroepniveau. Deze scheiding zorgt ervoor dat de ontwikkelaarsteams die met de ingerichte resources werken alleen zichtbaarheid en schrijftoegang tot de resourcegroepen hebben. De implementatiestack blijft geïsoleerd op een hoger niveau. Deze configuratie minimaliseert het aantal gebruikers dat een implementatiestack kan bewerken en wijzigingen kan aanbrengen in de weigeringstoewijzing. Zie Beheerde resource beveiligen tegen verwijdering voor meer informatie.

U kunt ook de opdrachten voor het maken van stacks gebruiken om implementatiestacks bij te werken.

Een implementatiestapel binnen de resourcegroep maken:

New-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Een implementatiestack maken op abonnementsniveau:

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentResourceGroupName "<resource-group-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

De DeploymentResourceGroupName parameter geeft de resourcegroep op die wordt gebruikt voor het opslaan van de beheerde resources. Als u de parameter niet opgeeft, worden de beheerde resources opgeslagen in het abonnementsbereik.

Een implementatiestack maken binnen het bereik van de beheergroep:

New-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentSubscriptionId "<subscription-id>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

De deploymentSubscriptionId parameter geeft het abonnement op dat wordt gebruikt voor het opslaan van de beheerde resources. Als u de parameter niet opgeeft, worden de beheerde resources opgeslagen in het bereik van de beheergroep.

Implementatiestacks vermelden

Resources voor implementatiestacks weergeven op het bereik van de resourcegroep:

Get-AzResourceGroupDeploymentStack `
  -ResourceGroupName "<resource-group-name>"

Resources voor implementatiestacks weergeven binnen het abonnementsbereik:

Get-AzSubscriptionDeploymentStack

Resources voor implementatiestacks tonen op beheerdergroepsniveau:

Get-AzManagementGroupDeploymentStack `
  -ManagementGroupId "<management-group-id>"

Implementatiestacks bijwerken

Als u een implementatiestack wilt bijwerken, waarbij u mogelijk een beheerde resource wilt toevoegen of verwijderen, moet u wijzigingen aanbrengen in de onderliggende Bicep-bestanden. Zodra u de wijzigingen hebt aangebracht, kunt u de implementatiestack bijwerken door de updateopdracht uit te voeren of de opdracht maken opnieuw uit te voeren.

Het ontwerppatroon voor infrastructuur als code geeft u volledige controle over de lijst met beheerde resources.

De opdracht Instellen gebruiken

Een implementatiestack bijwerken binnen de scope van de resourcegroep:

Set-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Een deployment stack bijwerken binnen het abonnementsbereik:

Set-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentResourceGroupName "<resource-group-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

De DeploymentResourceGroupName parameter geeft de resourcegroep op die wordt gebruikt voor het opslaan van de implementatiestackresources. Als u geen naam voor een resourcegroep opgeeft, maakt de implementatiestackservice een nieuwe resourcegroep voor u.

Een implementatiestack bijwerken binnen de scope van de beheergroep:

Set-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -DeploymentSubscriptionId "<subscription-id>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "none"

Gebruik de opdracht Nieuw

U krijgt een waarschuwing die lijkt op de volgende:

The deployment stack 'myStack' you're trying to create already exists in the current subscription/management group/resource group. Do you want to overwrite it? Detaching: resources, resourceGroups (Y/N)

Zie Implementatiestacks maken voor meer informatie.

Besturing loskoppelen en verwijderen

Een losgekoppelde resource (of onbeheerde resource) verwijst naar een resource die niet wordt bijgehouden of beheerd door de implementatiestack, maar die nog steeds bestaat in Azure.

Als u Azure wilt instrueren om onbeheerde resources te verwijderen, werkt u de stack bij met de opdracht Stack maken en neemt u de ActionOnUnmanage switch op. Zie Implementatiestack maken voor meer informatie.

Gebruik de ActionOnUnmanage schakeloptie om te definiëren wat er gebeurt met resources die niet meer worden beheerd nadat een stack is bijgewerkt of verwijderd. Toegestane waarden zijn:

  • deleteAll: Verwijder in plaats van loskoppelen voor beheerde resources en resourcegroepen.
  • deleteResources: Gebruik verwijderen in plaats van alleen loskoppelen voor beheerde resources.
  • detachAll: Koppel de beheerde resources en resourcegroepen los.

Voorbeeld:

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name" `
  -TemplateFile "<bicep-file-name>" `
  -DenySettingsMode "none" `
  -ActionOnUnmanage "deleteAll" 

Waarschuwing

Wanneer u resourcegroepen verwijdert waarvoor de action-on-unmanage schakeloptie is ingesteld deleteAll, verwijdert u de beheerde resourcegroepen en alle resources erin.

De stack-out-of-sync-fout verwerken

Wanneer u een implementatiestack bijwerkt of verwijdert, kan de volgende stack-out-of-sync-fout optreden, waarmee wordt aangegeven dat de lijst met stackresources niet juist is gesynchroniseerd.

The deployment stack '{0}' might not have an accurate list of managed resources. To prevent resources from being accidentally deleted, check that the managed resource list doesn't have any additional values. If there is any uncertainty, it's recommended to redeploy the stack with the same template and parameters as the current iteration. To bypass this warning, specify the 'BypassStackOutOfSyncError' flag.

U kunt een lijst met de resources ophalen uit De Azure-portal of het momenteel geïmplementeerde Bicep-bestand opnieuw implementeren met dezelfde parameters. De uitvoer toont de beheerde resources.

...
Resources: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Network/virtualNetworks/vnetthmimleef5fwk
           /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/demoRg/providers/Microsoft.Storage/storageAccounts/storethmimleef5fwk

Nadat u de lijst met resources in de stack hebt bekeken en gecontroleerd, voert u de opdracht opnieuw uit met de BypassStackOutOfSyncError switch in Azure PowerShell (of bypass-stack-out-of-sync-error in Azure CLI). Gebruik deze switch pas nadat u de lijst met resources in de stack grondig hebt bekeken. Gebruik deze schakeloptie niet standaard.

Verwijder implementatiestacks

De ActionOnUnmanage schakeloptie definieert de actie voor de resources die niet meer worden beheerd. De schakelaar heeft de volgende waarden:

  • DeleteAll: Verwijder zowel de resources als de resourcegroepen.
  • DeleteResources: alleen de resources verwijderen.
  • DetachAll: Koppel de resources los.

Zelfs als u de switch voor verwijderen opgeeft, kunnen onbeheerde resources in de resourcegroep waarin de implementatiestack zich bevindt, voorkomen dat zowel de niet-beheerde resources als de resourcegroep zelf worden verwijderd.

De resources van de implementatiestack binnen de reikwijdte van de resourcegroep verwijderen:

Remove-AzResourceGroupDeploymentStack `
  -name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"

Om resources voor implementatiestacks op abonnementsniveau te verwijderen:

Remove-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"

Resources voor implementatiestacks verwijderen binnen het bereik van de beheergroep:

Remove-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ManagementGroupId "<management-group-id>" `
  -ActionOnUnmanage "<deleteAll/deleteResources/detachAll>"

Beheerde resources weergeven in implementatiestack

De implementatiestackservice heeft nog geen grafische gebruikersinterface (GUI) van Azure Portal. Als u de beheerde resources in een implementatiestack wilt weergeven, gebruikt u de volgende Azure PowerShell-/Azure CLI-opdrachten:

Beheerde resources weergeven binnen de scope van de resourcegroep:

(Get-AzResourceGroupDeploymentStack -Name "<deployment-stack-name>" -ResourceGroupName "<resource-group-name>").Resources

Beheerde resources weergeven op het abonnementsbereik:

(Get-AzSubscriptionDeploymentStack -Name "<deployment-stack-name>").Resources

Beheerde resources bekijken op het niveau van de beheergroep.

(Get-AzManagementGroupDeploymentStack -Name "<deployment-stack-name>" -ManagementGroupId "<management-group-id>").Resources

Resources toevoegen aan implementatiestack

Als u een beheerde resource wilt toevoegen, voegt u de resourcedefinitie toe aan de onderliggende Bicep-bestanden en voert u vervolgens de updateopdracht uit of voert u de opdracht maken opnieuw uit. Zie Update-implementatiestacks voor meer informatie.

Beheerde resources verwijderen uit de implementatiestack

Als u een beheerde resource wilt verwijderen, verwijdert u de resourcedefinitie uit de onderliggende Bicep-bestanden en voert u vervolgens de updateopdracht uit of voert u de opdracht maken opnieuw uit. Zie Update-implementatiestacks voor meer informatie.

Beheerde resources beveiligen

U kunt specifieke machtigingen toewijzen aan de beheerde resources van een implementatiestack om te voorkomen dat onbevoegde beveiligingsprinciplen deze verwijderen of bijwerken. Deze machtigingen worden instellingen voor weigeren genoemd. Sla stacks op in het ouderbereik op. Als u bijvoorbeeld resources in een abonnement wilt beschermen, plaatst u de stack binnen het bovenliggende bereik, namelijk de directe bovenliggende beheergroep.

De instelling weigeren is alleen van toepassing op de besturingsvlakbewerkingen en niet op de bewerkingen van het gegevensvlak. U maakt bijvoorbeeld opslagaccounts en sleutelkluizen aan via het controlevlak, wat betekent dat de implementatiestack deze beheert. Je maakt echter subresources, zoals geheimen of blobcontainers via het datavlak, wat betekent dat de implementatiestack deze niet kan beheren.

De instelling voor weigeren is alleen van toepassing op expliciet gemaakte resources, niet impliciet gemaakte resources. Een beheerd AKS-cluster maakt bijvoorbeeld meerdere andere services om dit te ondersteunen, zoals een virtuele machine. Omdat de virtuele machine in dit geval niet is gedefinieerd in het Bicep-bestand en een impliciet gemaakte resource is, is deze niet onderworpen aan de instellingen voor weigeren van de implementatiestack.

Notitie

Voor de nieuwste release zijn specifieke machtigingen in het stack-bereik vereist om:

  • Een implementatiestack maken of bijwerken en instelling voor weigeren configureren op een andere waarde dan None.
  • Een implementatiestack bijwerken of verwijderen met een bestaande instelling voor weigeren van een andere waarde dan None.

Gebruik de ingebouwde rollen van de implementatiestack om machtigingen te verlenen.

De Azure PowerShell bevat deze parameters om de weigeringstoewijzing aan te passen:

  • DenySettingsMode: Definieert de bewerkingen die niet zijn toegestaan voor de beheerde resources om te beschermen tegen onbevoegde beveiligingsprinciplen die proberen ze te verwijderen of bij te werken. Deze beperking geldt voor iedereen, tenzij u expliciet toegang verleent. De waarden zijn: None, DenyDeleteen DenyWriteAndDelete.
  • DenySettingsApplyToChildScopes: Wanneer dit is opgegeven, is de configuratie van de weigermodus ook van toepassing op het onderliggende bereik van de beheerde resources. Een Bicep-bestand definieert bijvoorbeeld een resource Microsoft.Sql/servers (bovenliggend) en een resource Microsoft.Sql/servers/databases (onderliggend). Als u een implementatiestack maakt met behulp van het Bicep-bestand waarbij de DenySettingsApplyToChildScopes instelling is ingeschakeld en de DenySettingsMode instelling op DenyWriteAndDelete is ingesteld, kunt u geen extra onderliggende resources toevoegen aan Microsoft.Sql/servers of Microsoft.Sql/servers/databases.
  • DenySettingsExcludedAction: Lijst met beheerbewerkingen op basis van rollen die zijn uitgesloten van de instellingen voor weigeren. Maximaal 200 acties zijn toegestaan.
  • DenySettingsExcludedPrincipal: Lijst met Microsoft Entra-principal-id's die zijn uitgesloten van de vergrendeling. Maximaal vijf principals zijn toegestaan.

Instellingen voor weigeren toepassen op het bereik van de resourcegroep:

New-AzResourceGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ResourceGroupName "<resource-group-name>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "denyDelete" `
  -DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

De weigerinstellingen toepassen op het niveau van het abonnement.

New-AzSubscriptionDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "denyDelete" `
  -DenySettingsExcludedAction "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Gebruik de DeploymentResourceGroupName parameter om de naam van de resourcegroep op te geven waarop de implementatiestack wordt gemaakt. Als een bereik niet is opgegeven, wordt het bereik van de implementatiestack gebruikt.

Weigerinstellingen toepassen voor de scope van de beheergroep:

New-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -Location "<location>" `
  -TemplateFile "<bicep-file-name>" `
  -ActionOnUnmanage "detachAll" `
  -DenySettingsMode "denyDelete" `
  -DenySettingsExcludedActions "Microsoft.Compute/virtualMachines/write Microsoft.StorageAccounts/delete" `
  -DenySettingsExcludedPrincipal "<object-id>,<object-id>"

Gebruik de DeploymentSubscriptionId parameter om de abonnements-id op te geven waarop de implementatiestack wordt gemaakt. Als een bereik niet is opgegeven, wordt het bereik van de implementatiestack gebruikt.

Beheerbronnen loskoppelen van implementatiestapel

Standaard worden implementatiestacks losgekoppeld en worden onbeheerde resources niet verwijderd wanneer ze zich niet meer in het beheerbereik van de stack bevinden. Zie Update-implementatiestacks voor meer informatie.

Sjablonen exporteren uit implementatiestacks

U kunt de resources exporteren van een implementatiestack naar een JSON-uitvoer. U kunt de uitvoer doorsluisen naar een bestand.

Een implementatiestack exporteren binnen de resourcegroep:

Save-AzResourceGroupDeploymentStack `
   -Name "<deployment-stack-name>" `
   -ResourceGroupName "<resource-group-name>" `

Een implementatiestack exporteren binnen het abonnementsbereik:

Save-AzSubscriptionDeploymentStack `
  -name "<deployment-stack-name>"

Een deploymentstack exporteren op het niveau van de beheergroep:

Save-AzManagementGroupDeploymentStack `
  -Name "<deployment-stack-name>" `
  -ManagementGroupId "<management-group-id>"

Volgende stappen

Zie Quickstart: een implementatiestack maken en implementeren met Bicep om een snelle startgids voor Bicep-implementatie door te nemen.