Esercizio - Aggiungere parametri ed espressioni Decorator

Completato

Annotazioni

Questo esercizio è facoltativo. Se si vuole completare questo esercizio, è necessario creare una sottoscrizione di Azure prima di iniziare. Se non si ha un account Azure o non si vuole crearne uno in questo momento, è possibile leggere le istruzioni in modo da comprendere le informazioni presentate.

Annotazioni

Per completare i passaggi di questo esercizio, è necessario usare un gruppo di risorse. È possibile usare un gruppo di risorse già creato oppure creare un nuovo gruppo di risorse specifico per questo esercizio. Se si sceglie di creare un nuovo gruppo di risorse, sarà più semplice pulire le risorse create durante l'esercizio. Se non si ha un gruppo di risorse esistente o si vuole crearne uno nuovo in particolare per questo esercizio, è possibile seguire la procedura descritta in Usare il portale di Azure e Azure Resource Manager per gestire i gruppi di risorse per creare un gruppo di risorse usando il portale di Azure oppure seguire la procedura descritta in Gestire i gruppi di risorse di Azure usando l'interfaccia della riga di comando di Azure per creare un gruppo di risorse usando l'interfaccia della riga di comando di Azure.

Come parte della migrazione dell'applicazione HR, si sta creando un modello Bicep per la distribuzione di risorse di Azure. In questo esercizio si creeranno un piano di servizio app di Azure e un'app del servizio app. Si applicheranno espressioni Decorator a ogni parametro per assicurarsi che contengano sempre i valori previsti.

Durante il processo verranno eseguite le attività seguenti:

  • Creare un file Bicep che include parametri e variabili.
  • Aggiungere espressioni Decorator ai parametri.
  • Testare la distribuzione per verificare che il modello sia valido.

Questo esercizio usa l'estensione Bicep per Visual Studio Code. Assicurarsi di installare questa estensione in Visual Studio Code.

Creare un modello Bicep con parametri

  1. Apri 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 selezionare Ctrl+S in Windows (⌘+S in macOS). Assicurarsi di ricordare dove è stato salvato il file. Ad esempio, è possibile creare una cartella scripts in cui salvarla.

  4. Aggiungere nel file il contenuto riportato di seguito. Il modello verrà distribuito a breve. Immettere il contenuto manualmente anziché copiarlo e incollarlo, in modo da sperimentare in prima persona l'ausilio offerto dagli strumenti quando si scrivono file Bicep.

    param environmentName string = 'dev'
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    param appServicePlanInstanceCount int = 1
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    param location string = 'eastus'
    
    var appServicePlanName = '${environmentName}-${solutionName}-plan'
    var appServiceAppName = '${environmentName}-${solutionName}-app'
    

    Si stanno creando svariati parametri che usano tipi diversi. Si stanno definendo i valori predefiniti per ogni parametro. Alcuni dei valori predefiniti includono l'interpolazione di stringhe e la funzione uniqueString().

    Suggerimento

    La funzione uniqueString() è utile per creare nomi di risorse univoci a livello globale. Restituisce una stringa che è la stessa in ogni distribuzione nello stesso gruppo di risorse, ma diversa quando si esegue la distribuzione in sottoscrizioni o gruppi di risorse diversi.

    Si stanno inoltre definendo variabili che costruiscono i nomi del piano di servizio app di Azure e dell'app del servizio app. I valori corrispondenti includono alcuni dei parametri specificati. L'utente che esegue la distribuzione può sostituire i valori dei parametri, ma non i valori delle variabili.

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

    resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: appServicePlanSku.name
        tier: appServicePlanSku.tier
        capacity: appServicePlanInstanceCount
      }
    }
    
    resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
      }
    }
    

    Si noti che le risorse usano i valori dei parametri che sono stati definiti.

  6. Salvare le modifiche apportate al file.

Aggiungere descrizioni dei parametri

  1. Nel file main.bicep in Visual Studio Code aggiungere l'espressione Decorator @description direttamente sopra ogni parametro creato nell'attività precedente. I parametri dovrebbero essere simili all'esempio seguente:

    @description('The name of the environment. This must be dev, test, or prod.')
    param environmentName string = 'dev'
    
    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
    @description('The number of App Service plan instances.')
    param appServicePlanInstanceCount int = 1
    
    @description('The name and tier of the App Service plan SKU.')
    param appServicePlanSku object = {
      name: 'F1'
      tier: 'Free'
    }
    
    @description('The Azure region into which the resources should be deployed.')
    param location string = 'eastus'
    
  2. Salvare le modifiche apportate al file.

Limitare i valori di input

L’azienda di giocattoli distribuirà l'applicazione HR in tre ambienti: dev, test e prod. Il parametro environmentName verrà limitato solo per consentire tali tre valori.

  1. Nel file main.bicep in Visual Studio Code individuare il parametro environmentName. Inserire un'espressione Decorator @allowed sotto la sua espressione Decorator @description. Al termine, il parametro dovrebbe essere simile all'esempio seguente:

    @description('The name of the environment. This must be dev, test, or prod.')
    @allowed([
      'dev'
      'test'
      'prod'
    ])
    param environmentName string = 'dev'
    

    Si noti che si sta limitando il valore del parametro environmentName solo a dev, test e prod. Se in futuro verranno aggiunti altri ambienti, sarà necessario aggiornare questo elenco.

  2. Salvare le modifiche apportate al file.

Limitare le lunghezze di input

Il parametro solutionName viene usato per generare i nomi delle risorse. Si vuole imporre una lunghezza minima di 5 caratteri e una lunghezza massima di 30 caratteri.

  1. Nel file main.bicep in Visual Studio Code individuare il parametro solutionName. Aggiungere le espressioni Decorator @minLength e @maxLength sotto l'espressione Decorator @description. Al termine, il parametro dovrebbe essere simile all'esempio seguente:

    @description('The unique name of the solution. This is used to ensure that resource names are unique.')
    @minLength(5)
    @maxLength(30)
    param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'
    
  2. Salvare le modifiche apportate al file.

Limitare i valori numerici

Ora si verificherà che il parametro appServicePlanInstanceCount accetti solo valori compresi tra 1 e 10.

  1. Nel file main.bicep in Visual Studio Code individuare il parametro appServicePlanInstanceCount. Aggiungere le espressioni Decorator @minValue e @maxValue sotto l'espressione Decorator @description. Al termine, il parametro dovrebbe essere simile all'esempio seguente:

    @description('The number of App Service plan instances.')
    @minValue(1)
    @maxValue(10)
    param appServicePlanInstanceCount int = 1
    
  2. Salvare le modifiche apportate al file.

Verificare il file Bicep

Al termine di tutte le modifiche precedenti, il file Bicep avrà un aspetto simile al seguente:

@description('The name of the environment. This must be dev, test, or prod.')
@allowed([
  'dev'
  'test'
  'prod'
])
param environmentName string = 'dev'

@description('The unique name of the solution. This is used to ensure that resource names are unique.')
@minLength(5)
@maxLength(30)
param solutionName string = 'toyhr${uniqueString(resourceGroup().id)}'

@description('The number of App Service plan instances.')
@minValue(1)
@maxValue(10)
param appServicePlanInstanceCount int = 1

@description('The name and tier of the App Service plan SKU.')
param appServicePlanSku object = {
  name: 'F1'
  tier: 'Free'
}

@description('The Azure region into which the resources should be deployed.')
param location string = 'eastus'

var appServicePlanName = '${environmentName}-${solutionName}-plan'
var appServiceAppName = '${environmentName}-${solutionName}-app'

resource appServicePlan 'Microsoft.Web/serverfarms@2024-04-01' = {
  name: appServicePlanName
  location: location
  sku: {
    name: appServicePlanSku.name
    tier: appServicePlanSku.tier
    capacity: appServicePlanInstanceCount
  }
}

resource appServiceApp 'Microsoft.Web/sites@2024-04-01' = {
  name: appServiceAppName
  location: location
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

In caso contrario, copiare l'esempio oppure modificare il modello in modo che corrisponda all'esempio.

Distribuire il modello Bicep in Azure

Per distribuire questo modello in Azure, è necessario accedere all'account Azure dal terminale di Visual Studio Code. Assicurarsi di aver installato gli strumenti dell'interfaccia della riga di comando di Azure .

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

  2. Se la finestra del terminale visualizza bash sul lato destro, significa che la shell corretta è già aperta. In alternativa, se si vede un'icona della shell bash a destra, è possibile selezionarla per avviare la shell.

    Screenshot della finestra del terminale di Visual Studio Code con l'opzione bash visualizzata.

    Se viene visualizzata una shell diversa da bash , selezionare la freccia a discesa della shell e quindi selezionare Git Bash.

    Screenshot della finestra del terminale di Visual Studio Code con l'elenco a discesa della shell del terminale visualizzato e Git Bash Default selezionato.

  3. 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 usando l'interfaccia della riga di comando di 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. Nell'elenco trovare la sottoscrizione che si vuole usare per questo esercizio.

    Se hai perso l'elenco durante l'accesso, puoi usare il seguente blocco di codice per elencare nuovamente le sottoscrizioni.

    az account list --output table
    
  4. Impostare la sottoscrizione predefinita per tutti i comandi dell'interfaccia della riga di comando di Azure eseguiti in questa sessione.

    az account set --subscription "Your Subscription Name or ID"
    

Distribuire il modello in Azure usando l'interfaccia della riga di comando di Azure

Eseguire il codice seguente dal terminale integrato in Visual Studio Code per distribuire il modello Bicep in Azure. Non è necessario specificare i valori dei parametri, perché sono stati specificati valori predefiniti. Possono essere necessari uno o due minuti per il completamento del processo, al termine del quale la distribuzione risulterà completata con esito positivo.

az deployment group create --name main --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 di aver installato Azure PowerShell.

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

  2. Se la finestra del terminale mostra pwsh o powershell a destra, significa che la shell corretta è già aperta. In alternativa, se a destra viene visualizzata un'icona della shell di PowerShell, è possibile selezionarla per avviare la shell.

    Screenshot della finestra del terminale di Visual Studio Code con l'opzione pwsh visualizzata nell'elenco a discesa della shell.

    Se viene visualizzata una shell diversa da pwsh o PowerShell , selezionare la freccia a discesa della shell e quindi selezionare PowerShell.

    Screenshot della finestra del terminale di Visual Studio Code, con l'elenco a discesa della shell del terminale visualizzato e PowerShell selezionato.

  3. 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 Bicep CLI.

Accedere ad Azure usando Azure PowerShell

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

    Connect-AzAccount
    
  2. Nel browser visualizzato accedere al proprio account Azure.

  3. Ottenere l'ID della sottoscrizione che si vuole usare per questo esercizio eseguendo il comando seguente:

    Get-AzSubscription
    

    L'ID della sottoscrizione è la seconda colonna. Copiare la seconda colonna. Sembra simile a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.

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

    Set-AzContext -SubscriptionId {Your subscription ID}
    

Distribuire il modello in Azure con PowerShell

Distribuire il modello in Azure usando il comando di Azure PowerShell seguente nel terminale. Non è necessario specificare i valori dei parametri, perché sono stati specificati valori predefiniti. Possono essere necessari uno o due minuti per il completamento del processo, al termine del quale la distribuzione risulterà completata con esito positivo.

New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep

Verificare la distribuzione

  1. Passare al portale di Azure e assicurarsi di entrare nella sottoscrizione corretta.

  2. Nel pannello di sinistra selezionare Gruppi di risorse.

  3. Selezionare il nome del gruppo di risorse.

  4. In Panoramica viene visualizzata una distribuzione completata.

    Screenshot dell'interfaccia del portale di Azure per la panoramica del gruppo di risorse con la sezione delle distribuzioni che mostra una distribuzione completata.

  5. Selezionare 1 Operazione riuscita per visualizzare i dettagli della distribuzione.

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

  6. Selezionare la distribuzione denominata main per visualizzare le risorse distribuite e quindi selezionare Dettagli della distribuzione per espanderla. In questo caso, sono presenti un piano di servizio app e un'app.

    Screenshot dell'interfaccia del portale di Azure per la distribuzione specifica con un piano di servizio app e un'app elencati.

  7. Selezionare Input nel menu a sinistra.

    Screenshot dell'interfaccia del portale di Azure per la distribuzione specifica, con la voce di menu Input evidenziata.

  8. Notare che sono elencati i parametri e i relativi valori.

    Screenshot dell'interfaccia del portale di Azure per la distribuzione specifica, che mostra i valori dei parametri.

  9. Lasciare aperta la pagina nel browser. Controllerai le distribuzioni di nuovo più tardi.