Condividi tramite


Integrazione degli stack di distribuzione di Azure con l'interfaccia della riga di comando per sviluppatori di Azure

L'interfaccia della riga di comando per sviluppatori di Azure (azd) supporta gli stack di distribuzione di Azure per le distribuzioni di modelli. Uno stack di distribuzione di Azure è una risorsa che consente di gestire un gruppo di risorse di Azure come una singola unità coesa. Usando gli stack di distribuzione, è possibile ottenere un maggiore controllo sul set di risorse associate al modello e all'app azd .

In questo articolo vengono illustrate le operazioni seguenti:

  • Abilitare il supporto di Azure Deployment Stack in azd.
  • Distribuire azd modelli usando gli stack di distribuzione di Azure.
  • Configurare il comportamento dello stack di distribuzione usando azd le configurazioni.

Abilitare il supporto di Azure Deployment Stack

Il supporto degli stack di distribuzione di Azure deve essere abilitato tramite il azd config comando :

azd config set alpha.deployment.stacks on

Nota

Il supporto degli stack di distribuzione di Azure è attualmente una funzionalità alfa, motivo per cui deve essere abilitata manualmente. Tuttavia, gli stack di distribuzione diventeranno il comportamento di distribuzione predefinito di azd in una versione futura. Altre informazioni sulla strategia di controllo delle versioni.

Verificare che la funzionalità sia stata abilitata correttamente usando il azd config show comando :

azd config show

Distribuire un modello usando gli stack di distribuzione

Dopo aver abilitato la funzionalità stack di distribuzione, non sono necessarie ulteriori modifiche ai azd modelli per sfruttare il comportamento predefinito di questa funzionalità. azd esegue automaticamente il wrapping delle risorse del modello di cui è stato effettuato il provisioning in uno stack di distribuzione di Azure quando si esegue azd up:

azd up

azd usa l'ambito definito nel main.bicep file del modello per lo stack di distribuzione di Azure. Ad esempio, se l'ambito del modello è a livello di sottoscrizione o gruppo di risorse, è possibile visualizzare lo stack di distribuzione associato nella portale di Azure nella pagina Stack di distribuzione della pagina Sottoscrizione o gruppo di risorse associato.

Screenshot che mostra uno stack di distribuzione a livello di sottoscrizione nel portale di Azure.

Selezionare lo stack di distribuzione per visualizzare le pagine di gestione:

Screenshot che mostra i dettagli dello stack di distribuzione.

Eliminare uno stack di distribuzione

Per impostazione predefinita, è possibile eliminare uno stack di distribuzione e le risorse associate usando il comando standard azd down :

azd down

Il comportamento esatto degli stack di azd down distribuzione e viene configurato usando il azure.yaml file .

Configurare lo stack di distribuzione

azd espone varie impostazioni di configurazione tramite la infra sezione del azure.yaml file per influenzare il comportamento dello stack di distribuzione di Azure. Queste impostazioni sono mappate alle opzioni standard descritte in dettaglio nella documentazione relativa agli stack di distribuzione. Si consideri l'esempio seguente azure.yaml :

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
# ...

Nell'esempio precedente vengono definite le opzioni seguenti nella deploymentStacks sezione :

  • actionOnUnmanage: quando viene eliminato uno stack di distribuzione, le risorse di Azure associate vengono considerate non gestite. Questa impostazione determina come Azure gestirà le risorse non gestite. I valori possibili includono:
    • delete è il valore predefinito e elimina tutte le risorse gestite dallo stack di distribuzione eliminato.
    • detach lascia le risorse sul posto, ma rimuove l'associazione allo stack di distribuzione eliminato.
  • denySettings: sottosezione che fornisce un controllo sfumato sulle risorse dello stack di distribuzione.
    • mode: determina restrizioni di alto livello per le risorse dello stack di distribuzione. I valori possibili includono:
      • none è il valore predefinito e consente l'eliminazione delle risorse dello stack di distribuzione o l'aggiunta di nuove risorse.
      • denyDelete impedisce l'eliminazione delle risorse dello stack di distribuzione.
      • denyWriteAndDelete impedisce l'eliminazione delle risorse dello stack di distribuzione e impedisce anche l'aggiunta di nuove risorse allo stack di distribuzione.
    • excludedActions: elenca le azioni di controllo degli accessi in base al ruolo di Azure non consentite nelle risorse dello stack di distribuzione.
    • excludedResources: elenca gli ID risorsa esclusi da denySettings.
    • excludedPrincipals: elenca gli ID entità servizio esclusi da denySettings.
    • applyToChildScopes: valore booleano che imposta se le impostazioni di negazione si applicano alle risorse figlio delle risorse nello stack di distribuzione. Ad esempio, una risorsa di SQL Server dispone di risorse del database figlio.