Esercizio - Definire risorse in un modello Bicep

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.

Per il sito Web di lancio del giocattolo, si decide di creare prima un modello di verifica creando un modello Bicep di base. In questo esercizio si creerà un account di archiviazione, un piano del Servizio app di Azure e un'app. Si modificherà quindi il modello per renderlo più riutilizzabile.

Durante il processo, si eseguiranno queste operazioni:

  • Creare un modello che definisca una singola risorsa dell'account di archiviazione con valori hardcoded.
  • Effettuare il provisioning dell'infrastruttura e verificare il risultato.
  • Aggiungere al modello un piano di servizio app e un'app.
  • Effettuare nuovamente il provisioning dell'infrastruttura per visualizzare le nuove risorse.

In questo esercizio viene usata l'estensione Bicep per Visual Studio Code. Assicurarsi di installare questa estensione in Visual Studio Code.

Creare un modello Bicep contenente un account di archiviazione

  1. Aprire Visual Studio Code.

  2. Creare un nuovo file denominato main.bicep.

  3. Salvare il file vuoto in modo che Visual Studio Code possa caricare gli strumenti di Bicep.

    È possibile selezionare File>Salva con nome oppure premere CTRL+S in Windows (⌘+S in macOS). Assicurarsi di ricordare dove è stato salvato il file. Ad esempio, è possibile creare una cartella templates in cui salvare il file.

  4. Incollare il codice Bicep seguente nel file. Il modello verrà distribuito a breve. È preferibile digitare il codice manualmente piuttosto che copiarlo e incollarlo, in modo da sperimentare in prima persona l'ausilio offerto dagli strumenti quando si scrivono file Bicep.

    resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
      name: 'toylaunchstorage'
      location: 'eastus'
      sku: {
        name: 'Standard_LRS'
      }
      kind: 'StorageV2'
      properties: {
        accessTier: 'Hot'
      }
    }
    

    Suggerimento

    Nel linguaggio Bicep la posizione delle interruzioni di riga è molto importante ed è quindi necessario assicurarsi di non inserirle in posizioni diverse da quelle elencate qui.

    Osservare come Visual Studio Code suggerisca automaticamente i nomi di proprietà mentre vengono digitati. L'estensione Bicep per Visual Studio Code capisce quale risorsa si sta definendo nel modello ed elenca le proprietà disponibili e i valori che è possibile usare.

  5. Aggiornare il nome dell'account di archiviazione sostituendo toylaunchstorage con un nome che sia con ogni probabilità univoco, poiché ogni account di archiviazione deve avere un nome univoco a livello globale. Assicurarsi che il nome sia di lunghezza compresa tra 3 e 24 caratteri e includa solo lettere minuscole e numeri.

    Importante

    Non ignorare questo passaggio, altrimenti il file Bicep non verrà distribuito correttamente.

  6. Salvare le modifiche apportate al file.

Distribuire il modello Bicep in Azure

Per distribuire questo modello in Azure, è necessario accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi che sia installata l'interfaccia della riga di comando di Azure e ricordarsi di accedere con lo stesso account usato per attivare la sandbox.

  1. Dal menu Terminale scegliere Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.

  2. Se la shell visualizzata sul lato destro della finestra del terminale è bash, significa che è aperta la shell corretta ed è possibile passare alla sezione successiva.

    Screenshot of the Visual Studio Code terminal window, with the bash option shown.

  3. Se viene visualizzata una shell diversa da bash, selezionare l'elenco a discesa delle shell e quindi Git Bash.

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and Git Bash Default selected.

  4. Nell'elenco delle shell del terminale selezionare bash.

    Screenshot of the Visual Studio Code terminal window, with the bash terminal selected.

  5. Nel terminale passare alla directory in cui è stato salvato il modello. Se, ad esempio, il salvataggio del modello è stato eseguito nella cartella templates, è possibile usare questo comando:

    cd templates
    

Installare Bicep

Eseguire il comando seguente per assicurarsi che sia installata la versione più recente di Bicep:

az bicep install && az bicep upgrade

Accedere ad Azure

  1. Nel terminale di Visual Studio Code accedere ad Azure eseguendo il comando seguente:

    az login
    
  2. Nel browser visualizzato accedere al proprio account Azure.

    Il terminale di Visual Studio Code mostra un elenco delle sottoscrizioni associate a questo account.

  3. 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"
    

    Nota

    Se di recente sono state usate più sandbox, il terminale potrebbe mostrare più istanze di Concierge Subscription. In questo caso, attenersi ai due passaggi seguenti per impostarne una come predefinita. Se il comando precedente ha avuto esito positivo ed è elencata una sola Concierge Subscription, ignorare i due passaggi successivi.

  4. Ottenere gli ID della sottoscrizione Concierge Subscription.

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. Impostare la sottoscrizione predefinita usando l'ID sottoscrizione. Sostituire {your subscription ID} con l'ID della sottoscrizione Concierge Subscription più recente.

    az account set --subscription {your subscription ID}
    

Impostare il gruppo di risorse predefinito

Se si usa l'interfaccia della riga di comando di Azure, in questo esercizio è possibile impostare il gruppo di risorse predefinito e omettere il parametro dal resto dei comandi dell'interfaccia della riga di comando di Azure. Impostare come gruppo di risorse predefinito quello creato nell'ambiente sandbox.

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

Distribuire il modello in Azure

Eseguire il comando seguente dal terminale integrato in Visual Studio Code per distribuire il modello Bicep in Azure. Il completamento del comando può richiedere uno o due minuti, al termine dei quali la distribuzione risulterà completata con esito positivo. Se viene visualizzato un avviso relativo al fatto che la posizione è hardcoded, è possibile ignorarlo. La posizione verrà corretta più avanti nel modulo. È sicuro procedere e la distribuzione avrà esito positivo.

az deployment group create --template-file main.bicep

Verrà visualizzato Running... nel terminale.

Per distribuire questo modello in Azure, accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi che sia stato installato Azure PowerShell e di accedere allo stesso account con cui è stata attivata la sandbox.

  1. Dal menu Terminale scegliere Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.

  2. Se la shell visualizzata sul lato destro della finestra del terminale è PowerShell o pwsh, la shell corretta è aperta ed è possibile passare alla sezione successiva.

    Screenshot of the Visual Studio Code terminal window, with the pwsh option displayed in the shell dropdown list.

  3. Se viene visualizzata una shell diversa da powershell o pwsh, selezionare l'elenco a discesa delle shell e quindi PowerShell.

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown list shown and PowerShell selected.

  4. Nell'elenco delle shell del terminale selezionare powershell o pwsh.

    Screenshot of the Visual Studio Code terminal window, with the PowerShell terminal selected.

  5. Nel terminale passare alla directory in cui è stato salvato il modello. Se, ad esempio, il salvataggio del modello è stato eseguito nella cartella templates, è possibile usare questo comando:

    Set-Location -Path templates
    

Installare l'interfaccia della riga di comando di Bicep

Per usare Bicep da Azure PowerShell, installare l'interfaccia della riga di comando di Bicep.

Accedere ad Azure usando Azure PowerShell

  1. Nel terminale di Visual Studio Code eseguire il comando seguente:

    Connect-AzAccount
    

    Verrà aperta una finestra del browser per accedere all'account Azure.

  2. Una volta effettuato l'accesso ad Azure, il terminale mostra un elenco delle sottoscrizioni associate all'account.

    Se è stata attivata la sandbox, viene visualizzata una sottoscrizione denominata Concierge Subscription. Usarla nella parte rimanente dell'esercizio.

  3. Impostare la sottoscrizione predefinita per tutti i comandi di Azure PowerShell eseguiti in questa sessione.

    $context = Get-AzSubscription -SubscriptionName 'Concierge Subscription'
    Set-AzContext $context
    

    Nota

    Se di recente sono state usate più sandbox, il terminale potrebbe mostrare più istanze di Concierge Subscription. In questo caso, attenersi ai due passaggi seguenti per impostarne una come predefinita. Se il comando precedente ha avuto esito positivo ed è elencata una sola Concierge Subscription, ignorare i due passaggi successivi.

  4. Ottenere l'ID sottoscrizione. Eseguendo il comando seguente vengono elencate le sottoscrizioni e i rispettivi ID. Cercare Concierge Subscription e quindi copiare l'ID dalla seconda colonna. Il risultato sarà simile a: cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  5. Modificare la sottoscrizione attiva impostandola su Concierge Subscription. Assicurarsi di sostituire {Your subscription ID} con l'ID copiato.

    $context = Get-AzSubscription -SubscriptionId {Your subscription ID}
    Set-AzContext $context
    

Impostare il gruppo di risorse predefinito

In questo esercizio è possibile impostare il gruppo di risorse predefinito e omettere il parametro dal resto dei comandi di Azure PowerShell. Impostare come predefinito il gruppo di risorse creato automaticamente nell'ambiente sandbox.

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

Distribuire il modello in Azure

Distribuire il modello in Azure usando il comando di Azure PowerShell seguente nel terminale. Il completamento del comando può richiedere uno o due minuti, al termine dei quali la distribuzione risulterà completata. Se viene visualizzato un avviso relativo al fatto che la posizione è hardcoded, è possibile ignorarlo. La posizione verrà corretta più avanti nel modulo. È sicuro procedere e la distribuzione avrà esito positivo.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Verificare la distribuzione

La prima volta che si distribuisce un modello Bicep, può essere utile accedere al portale di Azure per verificare che la distribuzione sia stata completata correttamente e verificare i risultati.

  1. Passare al portale di Azure e assicurarsi di trovarsi nella sottoscrizione dell'ambiente sandbox.

    1. Selezionare l'avatar nell'angolo superiore destro della pagina.
    2. Selezionare Cambia directory. Nell'elenco scegliere la directory Microsoft Learn Sandbox.
  2. Nel pannello di sinistra selezionare Gruppi di risorse.

  3. Selezionare [nome gruppo di risorse sandbox].

  4. In Panoramica viene visualizzata una distribuzione completata. Potrebbe essere necessario espandere l'area Informazioni di base per visualizzare la distribuzione.

    Screenshot of the Azure portal interface for the resource group overview, with the deployments section showing that one succeeded.

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

    Screenshot of the Azure portal interface for the deployments, with the one deployment listed and a succeeded status.

  6. Selezionare la distribuzione denominata main per visualizzare le risorse distribuite e quindi selezionare Dettagli della distribuzione per espanderla. In questo caso, è presente un account di archiviazione con il nome specificato.

    Screenshot of the Azure portal interface for the specific deployment, with one storage account resource listed.

  7. Lasciare aperta la pagina nel browser. Le distribuzioni verranno controllate di nuovo in un momento successivo.

Per verificare la distribuzione, è possibile anche usare la riga di comando. A questo scopo, eseguire il comando dell'interfaccia della riga di comando di Azure illustrato di seguito:

az deployment group list --output table

Per verificare la distribuzione, è possibile anche usare la riga di comando. A questo scopo, eseguire il comando di Azure PowerShell illustrato di seguito:

Get-AzResourceGroupDeployment -ResourceGroupName <rgn>[sandbox resource group name]</rgn> | Format-Table

Aggiungere un piano di servizio app e un'app al modello Bicep

Nell'attività precedente si è appreso come creare e distribuire un modello con un'unica risorsa. Si è pronti quindi per passare alla distribuzione di altre risorse, tra cui una dipendenza. In questa attività si aggiungerà un piano di servizio app e un'app al modello Bicep.

  1. Nel file main.bicep in Visual Studio Code aggiungere il codice seguente alla fine del file:

    resource appServicePlan 'Microsoft.Web/serverFarms@2022-03-01' = {
      name: 'toy-product-launch-plan-starter'
      location: 'eastus'
      sku: {
        name: 'F1'
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = {
      name: 'toy-product-launch-1'
      location: 'eastus'
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    
  2. Aggiornare il nome dell'app del servizio app da toy-product-launch-1 a un nome che sia probabilmente univoco. Assicurarsi che il nome sia di lunghezza compresa tra 2 e 60 caratteri, che contenga lettere maiuscole e minuscole, numeri e trattini e che non inizi o termini con un trattino.

  3. Salvare le modifiche apportate al file.

Distribuire il modello Bicep aggiornato

Eseguire il seguente comando dell'interfaccia della riga di comando di Azure nel terminale. È possibile ignorare gli avvisi relativi alla posizione hardcoded. La posizione verrà corretta a breve.

az deployment group create --template-file main.bicep

Eseguire il seguente comando di Azure PowerShell nel terminale. È possibile ignorare i messaggi di avviso relativi alla posizione hardcoded. La posizione verrà corretta a breve.

New-AzResourceGroupDeployment -TemplateFile main.bicep

Controllare la distribuzione

  1. Tornare al portale di Azure e passare al gruppo di risorse. Risulterà ancora una sola distribuzione completata, poiché in questa distribuzione è stato usato lo stesso nome della prima.

  2. Selezionare il collegamento 1 Completata.

  3. Selezionare la distribuzione denominata main e quindi scegliere Dettagli della distribuzione per espandere l'elenco delle risorse distribuite.

    Screenshot that shows the Azure portal interface for the specific deployment, with storage account and App Service resources listed.

  4. Osservare come siano stati distribuiti sia il piano di servizio app che l'app stessa.