integratie van Azure implementatiestacks met de Azure Developer CLI

De Azure Developer CLI (azd) ondersteunt Azure implementatiestacks voor sjabloonimplementaties. Een Azure-implementatiestack is een resource waarmee u een groep Azure resources kunt beheren als één, samenhangende eenheid. Met behulp van implementatiestacks kunt u extra controle krijgen over de set resources die zijn gekoppeld aan uw azd sjabloon en app.

In dit artikel leert u het volgende:

  • Schakel Azure ondersteuning voor de implementatiestack in azd in.
  • Implementeer azd-sjablonen met behulp van Azure implementatiestacks.
  • Configureer het gedrag van de implementatiestack met behulp van azd configuraties.

Ondersteuning voor Azure implementatiestack inschakelen

Azure ondersteuning voor implementatiestacks moet worden ingeschakeld via de opdracht azd config:

azd config set alpha.deployment.stacks on

Notitie

Azure ondersteuning voor implementatiestacks is momenteel een alfa-functie. Daarom moet deze functie handmatig worden ingeschakeld. Implementatiestacks worden echter het standaardimplementatiegedrag van azd in een toekomstige release. Meer informatie over onze strategie voor versiebeheer.

Controleer of de functie is ingeschakeld met behulp van de azd config show opdracht:

azd config show

Een sjabloon implementeren met behulp van implementatiestacks

Nadat u de functie implementatiestacks hebt ingeschakeld, zijn er geen verdere wijzigingen in uw azd sjablonen vereist om gebruik te maken van het standaardgedrag van deze functie. azd verpakt de ingerichte sjabloonbronnen automatisch in een Azure implementatiestack wanneer u azd up uitvoert:

azd up

azd gebruikt het bereik dat is gedefinieerd in het bestand main.bicep van uw sjabloon voor de Azure-implementatiestack. Als uw sjabloon bijvoorbeeld is afgestemd op het niveau van het abonnement of de resourcegroep, kunt u de bijbehorende implementatiestack bekijken in de Azure-portal op de pagina Deployment-stacks van de gekoppelde abonnements- of resourcegroeppagina.

A schermopname van een implementatiestack op abonnementsniveau in de Azure portal.

Selecteer de implementatiestack om de beheerpagina's ervan weer te geven:

Een schermopname met de details van de implementatiestack.

Een implementatiestack verwijderen

Standaard kunt u een implementatiestack en de bijbehorende resources verwijderen met behulp van de standaardopdracht azd down :

azd down

Het exacte gedrag van azd down en implementatiestacks wordt geconfigureerd met behulp van het azure.yaml-bestand.

De implementatiestack configureren

azd maakt verschillende configuratie-instellingen beschikbaar via de sectie infra van het bestand azure.yaml om het gedrag van de Azure-implementatiestack te beïnvloeden. Deze instellingen komen overeen met de standaardopties die worden beschreven in de documentatie van implementatiestacks. Bekijk het volgende azure.yaml voorbeeld:

name: todo-nodejs-mongo-aca
metadata:
  template: todo-nodejs-mongo-aca@0.0.1-beta
infra:
  provider: bicep
  deploymentStacks:
    actionOnUnmanage:
      resources: delete
      resourceGroups: delete
    denySettings:
      mode: denyDelete
      excludedActions:
        - Microsoft.Resources/subscriptions/resourceGroups/delete
      excludedResources:
        - <your-resource-id-1>
        - <your-resource-id-2>
      excludedPrincipals:
        - <your-targeted-principal-id-1>
        - <your-targeted-principal-id-2>
      applyToChildScopes: true
# ...
# Remaining file contents omitted
# ...

In het voorgaande voorbeeld worden de volgende opties gedefinieerd in de deploymentStacks sectie:

  • actionOnUnmanage: Wanneer een implementatiestack wordt verwijderd, worden de gekoppelde Azure resources als onbeheerd beschouwd. Deze instelling bepaalt hoe Azure niet-beheerde resources verwerkt. Mogelijke waarden zijn:
    • delete is de standaardwaarde en vernietigt alle resources die worden beheerd door de verwijderde implementatiestack.
    • detach laat resources aanwezig, maar verwijdert de koppeling naar de verwijderde implementatiestack.
  • denySettings: een subsectie die genuanceerde controle biedt over de resources van de implementatiestack.
    • modus: bepaalt beperkingen op hoog niveau voor de resources van de implementatiestack. Mogelijke waarden zijn:
      • none is de standaardwaarde en staat toe dat de resources van de implementatiestack worden verwijderd of nieuwe resources worden toegevoegd.
      • denyDelete voorkomt dat resources uit de implementatiestack worden verwijderd.
      • denyWriteAndDelete voorkomt dat resources uit de implementatiestack worden verwijderd en voorkomt ook dat nieuwe resources worden toegevoegd aan de implementatiestack.
    • excludedActions: lijst de acties van Azure role-based access control (RBAC) die niet zijn toegestaan op de resources van de implementatiestack.
    • excludedResources: geeft een lijst weer van de resource-id's die zijn uitgesloten van de denySettings.
    • excludedPrincipals: geeft een lijst weer van de service-principal-id's die zijn uitgesloten van de denySettings.
    • applyToChildScopes: een booleaanse waarde waarmee wordt ingesteld of de instellingen voor weigering van toepassing zijn op de onderliggende resources in de implementatiestack. Een SQL Server resource bevat bijvoorbeeld onderliggende databaseresources.

veelgestelde vragen over Azure Developer CLI