Importare ed esportare definizioni di progetto con PowerShell

Importante

Azure Blueprints (anteprima) verrà ritirata il 31 gennaio 2027, con un ritiro graduale a partire dal 31 luglio 2026. Esegui la migrazione delle definizioni e assegnazioni dei blueprint esistenti a stack di distribuzione (consigliato) e Specifiche modello. Gli artefatti del progetto vengono convertiti in modelli JSON ARM o Bicep file usati per definire gli stack di distribuzione. Per le tempistiche complete, l'impatto e le domande frequenti, vedi ritiro di Azure Blueprints o https://aka.ms/AzureBlueprintsRetirement. Per informazioni su come definire un artefatto come risorsa ARM, vedere:

Azure Blueprints può essere completamente gestito tramite il portale di Azure. Man mano che le organizzazioni avanzano nell'uso di Azure Blueprints, devono iniziare a pensare alle definizioni di progetto come codice gestito. Questo concetto viene spesso definito infrastruttura come codice (IaC). La gestione delle definizioni di progetto come codice offre vantaggi aggiuntivi oltre a quanto offerto dal portale Azure. Questi vantaggi includono:

  • Condivisione delle definizioni di progetto
  • Backup delle definizioni del progetto
  • Riutilizzare le definizioni di progetto in tenant o sottoscrizioni diversi
  • Inserimento delle definizioni di progetto nel controllo del codice sorgente
    • Test automatizzato delle definizioni di progetto negli ambienti di test
    • Supporto per pipeline di integrazione continua e distribuzione continua (CI/CD)

Indipendentemente dai motivi, la gestione delle definizioni di progetto come codice offre vantaggi. Questo articolo illustra come usare i Import-AzBlueprintWithArtifact comandi e Export-AzBlueprintWithArtifact nel modulo Az.Blueprint .

Prerequisiti

Questo articolo presuppone una conoscenza moderata del lavoro di Azure Blueprints. Se non è ancora stato fatto, seguire gli articoli seguenti:

Se il modulo Az.Blueprint non è già installato, seguire le istruzioni contenute in Aggiungere il modulo Az.Blueprint per installarlo e convalidarlo da PowerShell Gallery.

Struttura di cartelle di una definizione di progetto

Prima di esaminare l'esportazione e l'importazione di progetti, si esaminerà come sono strutturati i file che costituiscono la definizione del progetto. Una definizione di progetto deve essere archiviata nella propria cartella.

Importante

Se non viene passato alcun valore al parametro Name del Import-AzBlueprintWithArtifact cmdlet, viene usato il nome della cartella in cui viene archiviata la definizione del progetto.

Insieme alla definizione del progetto, che deve essere denominata blueprint.json, sono gli artefatti di cui è composta la definizione del progetto. Ogni elemento deve trovarsi nella sottocartella denominata artifacts. La struttura della definizione del progetto come file JSON nelle cartelle dovrebbe essere simile alla seguente:

.
|
|- MyBlueprint/  _______________ # Root folder name becomes default name of blueprint definition
|  |- blueprint.json  __________ # The blueprint definition. Fixed name.
|
|  |- artifacts/  ______________ # Subfolder for all blueprint artifacts. Fixed name.
|     |- artifact.json  ________ # Blueprint artifact as JSON file. Artifact named from file.
|     |- ...
|     |- more-artifacts.json

Esportare la definizione del progetto

I passaggi per esportare la definizione del progetto sono semplici. L'esportazione della definizione del progetto può essere utile per la condivisione, il backup o l'inserimento nel controllo del codice sorgente.

  • Progetto [obbligatorio]
    • Specifica la definizione del progetto
    • Usare Get-AzBlueprint per ottenere l'oggetto di riferimento
  • OutputPath [obbligatorio]
    • Specifica il percorso in cui salvare i file JSON di definizione del progetto
    • I file di output si trovano in una sottocartella con il nome della definizione del progetto
  • Versione (facoltativo)
    • Specifica la versione da restituire se l'oggetto riferimento blueprint contiene riferimenti a più versioni.
  1. Ottenere un riferimento alla definizione del progetto da esportare dalla sottoscrizione rappresentata da {subId}:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    # Get version '1.1' of the blueprint definition in the specified subscription
    $bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'MyBlueprint' -Version '1.1'
    
  2. Usare il Export-AzBlueprintWithArtifact cmdlet per esportare la definizione del progetto specificata:

    Export-AzBlueprintWithArtifact -Blueprint $bpDefinition -OutputPath 'C:\Blueprints'
    

Importare la definizione del progetto

Dopo aver esportato una definizione di progetto o aver creato manualmente una definizione di progetto nella struttura di cartelle richiesta, è possibile importare tale definizione di progetto in un gruppo di gestione o una sottoscrizione diversa.

Per esempi di definizioni di progetto predefinite, vedere il repository Azure Blueprints GitHub.

  • Nome [obbligatorio]
    • Specifica il nome per la nuova definizione del progetto
  • InputPath [obbligatorio]
  • ManagementGroupId (facoltativo)
    • ID del gruppo di gestione in cui salvare la definizione del blueprint, se non viene usato il valore predefinito del contesto corrente
    • È necessario specificare ManagementGroupId o SubscriptionId
  • SubscriptionId (facoltativo)
    • ID della sottoscrizione in cui salvare la definizione del progetto, se diverso da quello predefinito del contesto corrente
    • È necessario specificare ManagementGroupId o SubscriptionId
  1. Usare il Import-AzBlueprintWithArtifact cmdlet per importare la definizione del progetto specificata:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    Import-AzBlueprintWithArtifact -Name 'MyBlueprint' -ManagementGroupId 'DevMG' -InputPath 'C:\Blueprints\MyBlueprint'
    

Dopo l'importazione della definizione del progetto, assegnarla a PowerShell.

Per informazioni sulla creazione di definizioni di progetto avanzate, vedere gli articoli seguenti:

Passaggi successivi