Esercizio - Creare e distribuire un modello di Azure Resource Manager

Completato

Nota

La prima volta che si attiva una sandbox e si accettano le condizioni, l'account Microsoft viene associato a una nuova directory di Azure denominata Microsoft Learn Sandbox. Si viene aggiunti anche a una sottoscrizione speciale denominata Concierge Subscription.

In questo esercizio si crea un modello di Azure Resource Manager (ARM), lo si distribuisce in Azure e quindi si aggiorna il modello di Azure Resource Manager in modo da aggiungere parametri e output.

Questo esercizio usa Strumenti di Azure Resource Manager per Visual Studio Code. Assicurarsi di installare questa estensione in Visual Studio Code prima di avviare l'esercizio.

Creare un modello di Azure Resource Manager

  1. Aprire Visual Studio Code e creare un nuovo file denominato azuredeploy.json.

  2. L'estensione del modello di Azure Resource Manager per Visual Studio Code è configurata con frammenti per lo sviluppo dei modelli. Si inizierà aggiungendo un modello vuoto. Nella riga 1 del file, immettere arm.

  3. Visual Studio Code visualizza automaticamente diverse possibili scelte che iniziano con arm!. Selezionare il modello di Azure Resource Manager (ARM). Visual Studio Code elabora automaticamente gli schemi e i linguaggi per il modello.

    File azuredeploy.json per Visual Studio Code che mostra le scelte dei frammenti di codice per i modelli di Azure Resource Manager.

    Il file ha ora un aspetto simile al seguente:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [],
      "outputs": {}
    }
    

    Si noti che questo file presenta tutte le sezioni di un modello di ARM descritte nell'unità precedente.

  4. Salvare le modifiche al file premendo CTRL+S.

Distribuire il modello di Resource Manager in Azure

Per distribuire questo modello in Azure, è necessario accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi che siano installati gli strumenti dell'interfaccia della riga di comando di Azure e di accedere con lo stesso account usato per attivare la sandbox.

  1. Selezionare Terminale > Nuovo terminale per aprire una finestra del terminale.

  2. Se nella barra dei comandi della finestra del terminale viene visualizzato bash, la shell è corretta ed è possibile passare alla sezione successiva.

  3. In caso contrario, selezionare l'elenco a discesa e scegliere Seleziona profilo predefinito.

    Screenshot della finestra del terminale di Visual Studio Code con bash nel menu a discesa.

  4. Selezionare Git Bash.

    Screenshot della finestra del terminale di Visual Studio Code che mostra il menu a discesa per la selezione della shell.

  5. Selezionare Terminale > Nuovo terminale per aprire una finestra del terminale della shell bash.

Accedere ad Azure

  1. Nella finestra del terminale eseguire questo comando per accedere ad Azure.

    az login
    
  2. Nella finestra del browser visualizzata accedere al proprio account. Dopo avere effettuato l'accesso, verrà visualizzato un elenco di sottoscrizioni associate all'account nel terminale. Se la sandbox è stata attivata, viene visualizzata una sottoscrizione denominata Sottoscrizione Concierge. Usarla nella parte rimanente dell'esercizio.

  3. Nella shell bash eseguire il comando seguente per impostare la sottoscrizione predefinita per tutti i comandi dell'interfaccia della riga di comando di Azure eseguiti in questa sessione.

    az account set --subscription "Concierge Subscription"
    

    Se di recente sono state usate più sandbox, potrebbero essere elencate più elementi di Sottoscrizione Concierge. In tal caso, seguire i due passaggi successivi per identificare e impostare la sottoscrizione predefinita.

    1. Eseguire il comando seguente per ottenere gli ID Sottoscrizione Concierge.
     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
    1. Impostare la sottoscrizione predefinita eseguendo il comando seguente, sostituendo {ID sottoscrizione} con l'ID della sottoscrizione Concierge più recente.
    az account set --subscription {your subscription ID}
    

Impostare il gruppo di risorse predefinito

Impostando il gruppo di risorse predefinito su quello creato quando è stata attivata la sandbox, è possibile omettere tale parametro dai comandi dell'interfaccia della riga di comando di Azure in questo esercizio. Per impostare il gruppo di risorse, eseguire il comando seguente.

az configure --defaults group=<rgn>[sandbox resource group name]</rgn>

Distribuire il modello in Azure

Eseguire i comandi seguenti per distribuire il modello di ARM in Azure. Il modello di Resource Manager non dispone ancora di risorse, quindi non sono presenti risorse create. La distribuzione dovrebbe andare a buon fine.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="blanktemplate-"$today

az deployment group create \
 --name $DeploymentName \
 --template-file $templateFile

La sezione superiore del codice precedente imposta le variabili dell'interfaccia della riga di comando di Azure, che includono il percorso al file modello da distribuire e il nome della distribuzione. La sezione inferiore az deployment group create distribuisce il modello in Azure. Si noti che il nome della distribuzione è blanktemplate con la data come suffisso.

Si dovrebbe vedere Running... nel terminale.

Per distribuire questo modello in Azure, è necessario accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi di aver installato Azure PowerShell Tools dalle estensioni di Visual Studio Code e accedete allo stesso account con cui è stata attivata la sandbox.

  1. Nella barra dei comandi selezionare Terminale > Nuovo terminale per aprire una finestra di PowerShell.

  2. Se nella barra dei comandi della finestra del terminale viene visualizzato PowerShell, la shell è corretta ed è possibile passare alla sezione successiva.

    Screenshot della finestra del terminale di Visual Studio Code con il terminale 'pwsh' selezionato.

    1. In caso contrario, selezionare la freccia giù e nell'elenco a discesa selezionare PowerShell. Se questa opzione è mancante, selezionare Seleziona profilo predefinito.

    2. Nel campo di input scorrere verso il basso e selezionare PowerShell.

      Screenshot della finestra del terminale di Visual Studio Code che mostra il menu a discesa per la selezione della shell.

    3. Selezionare Terminale > Nuovo terminale per aprire una finestra del terminale di PowerShell.

Accedere ad Azure usando Azure PowerShell

  1. Dal terminale in Visual Studio Code eseguire il comando seguente per accedere ad Azure. Viene aperto un browser per accedere all'account.

    Connect-AzAccount
    

    Suggerimento

    Il modulo Az di PowerShell sostituisce il modulo AzureRM ed è la versione consigliata da usare per interagire con Azure.

  2. Accedere usando lo stesso account con cui è stata attivata la sandbox. Dopo aver effettuato l'accesso, Visual Studio Code elenca le sottoscrizioni associate all'account nella finestra del terminale. Se è stata attivata la sandbox, viene visualizzato un blocco di codice contenente "name": "Concierge Subscription". Questa sottoscrizione viene usata per il resto dell'esercizio.

Impostare la sottoscrizione predefinita per tutti i comandi di PowerShell in questa sessione

  1. Eseguire il comando seguente per ottenere le sottoscrizioni e i relativi ID. L'ID sottoscrizione è la seconda colonna. Cercare la Sottoscrizione Concierge e copiare il valore nella seconda colonna. Ha un aspetto simile a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e:

    Get-AzSubscription
    
  2. Eseguire il comando seguente, sostituendo {ID sottoscrizione} con quello copiato nel passaggio precedente. Questo comando modifica la sottoscrizione attiva impostandola sulla Sottoscrizione Concierge.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    
  3. Eseguire il comando seguente per consentire al gruppo di risorse predefinito di essere il gruppo di risorse creato nell'ambiente sandbox. Questa azione consente di omettere il parametro dai comandi rimanenti di Azure PowerShell in questo esercizio.

    Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
    

Distribuire il modello in Azure

Distribuire il modello in Azure eseguendo i comandi seguenti. Il modello di Resource Manager non dispone ancora di risorse, quindi non sono presenti risorse create.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="blanktemplate-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

La sezione superiore del codice precedente imposta le variabili di Azure PowerShell, che includono il percorso al file modello di distribuzione e il nome della distribuzione. Quindi il comando New-AzResourceGroupDeployment distribuisce il modello in Azure. Si noti che il nome della distribuzione è blanktemplate con la data come suffisso.

Dopo aver distribuito il modello di Azure Resource Manager in Azure, passare al portale di Azure e assicurarsi di trovarsi nella sottoscrizione della sandbox. A tale scopo, selezionare l'avatar nell'angolo superiore destro della pagina. Selezionare Cambia directory. Nell'elenco scegliere la directory Microsoft Learn Sandbox.

  1. Nel menu delle risorse selezionare Gruppi di risorse.

  2. Selezionare il gruppo di risorse [nome gruppo di risorse sandbox].

  3. Nel riquadro Panoramica viene visualizzata una distribuzione completata.

    Interfaccia del portale di Azure per la panoramica del gruppo di risorse con la sezione delle distribuzioni che mostra una distribuzione completata.

  4. Selezionare 1 completata per visualizzare i dettagli della distribuzione.

    Interfaccia del portale di Azure per le distribuzioni con una distribuzione completata.

  5. Selezionare blanktemplate per individuare le risorse distribuite. In questo caso è vuoto perché non sono state ancora specificate risorse nel modello.

    Interfaccia del portale di Azure per la distribuzione specifica senza risorse elencate.

  6. Lasciare aperta la pagina nel browser in modo da poter controllare di nuovo le distribuzioni.

Aggiungere una risorsa al modello di Resource Manager

Nell'attività precedente si è appreso come creare un modello vuoto e distribuirlo. A questo punto, si è pronti per distribuire una risorsa effettiva. In questa attività viene aggiunta una risorsa dell'account di archiviazione di Azure al modello di Azure Resource Manager usando un frammento dell'estensione Azure Resource Manager Tools per Visual Studio Code.

  1. Nel file azuredeploy.json in Visual Studio Code posizionare il cursore all'interno delle parentesi quadre nel blocco delle risorse "resources":[],.

  2. Immettere storage all'interno delle parentesi quadre. Viene visualizzato un elenco dei frammenti correlati. Selezionare arm-storage.

    Frammento di archiviazione di Azure Resource Manager di Visual Studio Code visualizzato sotto la parola storage digitata.

    Il file è simile al seguente:

    {
      "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {},
      "functions": [],
      "variables": {},
      "resources": [
        {
          "type": "Microsoft.Storage/storageAccounts",
          "apiVersion": "2023-05-01",
          "name": "storageaccount1",
          "tags": {
            "displayName": "storageaccount1"
          },
          "location": "[resourceGroup().location]",
          "kind": "StorageV2",
          "sku": {
            "name": "Premium_LRS"
          }
        }
      ],
      "outputs": {}
    }
    

    I valori da modificare sono evidenziati nella nuova sezione del file e possono essere spostati premendo il tasto TAB.

    Si noti che gli attributi tags e location sono compilati. L'attributo location usa una funzione per impostare il percorso della risorsa su quello del gruppo di risorse. Altre informazioni sui tag e le funzioni saranno disponibili nel modulo successivo.

  3. Modificare i valori name e displayName per la risorsa impostandoli su un valore univoco come learnexercise12321. Il nome deve essere univoco in Azure, quindi scegliere un valore specifico per l'utente.

  4. Modificare il valore di name per lo SKU da Premium_LRS a Standard_LRS. Modificare il valore di tier impostandolo su Standard. Si noti che Visual Studio Code suggerisce le scelte appropriate per i valori degli attributi tramite IntelliSense. Eliminare il valore predefinito, incluse le virgolette, e immettere le virgolette per vederlo in azione.

    Screenshot di Visual Studio Code che mostra le scelte IntelliSense per l'attributo name della SKU di archiviazione.

  5. Il percorso della risorsa è impostato sulla stessa posizione del gruppo di risorse in cui viene distribuita. Lasciare l'impostazione predefinita.

  6. Salvare il file.

Distribuire il modello di Resource Manager aggiornato

In questo esempio si modifica il nome della distribuzione in modo da rispecchiare meglio l'obiettivo della distribuzione.

Eseguire i comandi dell'interfaccia della riga di comando di Azure seguenti nel terminale. Questo frammento è lo stesso codice usato in precedenza, ma il nome della distribuzione è cambiato.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addstorage-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile

Eseguire i comandi di Azure PowerShell seguenti nel terminale. Questo frammento è lo stesso codice usato in precedenza, ma il nome della distribuzione è cambiato.

$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addstorage-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile

Controllare la distribuzione

  1. Al termine della distribuzione, tornare al portale di Azure nel browser. Passare al gruppo di risorse e osservare che ora sono presenti 2 distribuzioni completate. Selezionare il collegamento.

    Si noti che entrambe le distribuzioni sono presenti nell'elenco.

    Screenshot dell'interfaccia del portale di Azure per le distribuzioni con le due distribuzioni elencate e gli stati completato.

  2. Selezionare addstorage.

    Screenshot dell'interfaccia del portale di Azure per la distribuzione specifica con una risorsa elencata.

Si noti che l'account di archiviazione è distribuito.