Esercizio - Aggiungere parametri ed espressioni Decorator
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
Apri Visual Studio Code.
Creare un nuovo file denominato main.bicep.
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.
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.
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.
Salvare le modifiche apportate al file.
Aggiungere descrizioni dei parametri
Nel file main.bicep in Visual Studio Code aggiungere l'espressione Decorator
@descriptiondirettamente 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'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.
Nel file main.bicep in Visual Studio Code individuare il parametro
environmentName. Inserire un'espressione Decorator@allowedsotto 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
environmentNamesolo adev,testeprod. Se in futuro verranno aggiunti altri ambienti, sarà necessario aggiornare questo elenco.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.
Nel file main.bicep in Visual Studio Code individuare il parametro
solutionName. Aggiungere le espressioni Decorator@minLengthe@maxLengthsotto 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)}'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.
Nel file main.bicep in Visual Studio Code individuare il parametro
appServicePlanInstanceCount. Aggiungere le espressioni Decorator@minValuee@maxValuesotto 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 = 1Salvare 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 .
Dal menu Terminale scegliere Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.
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.
Se viene visualizzata una shell diversa da bash , selezionare la freccia a discesa della shell e quindi selezionare Git Bash.
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
Nel terminale di Visual Studio Code accedere ad Azure eseguendo il comando seguente:
az loginNel browser visualizzato accedere al proprio account Azure.
Il terminale di Visual Studio Code mostra un elenco delle sottoscrizioni associate a questo account.
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 tableImpostare 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.
Dal menu Terminale scegliere Nuovo terminale. La finestra del terminale si apre solitamente nella parte inferiore della schermata.
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.
Se viene visualizzata una shell diversa da pwsh o PowerShell , selezionare la freccia a discesa della shell e quindi selezionare PowerShell.
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
Nel terminale di Visual Studio Code accedere ad Azure eseguendo il comando seguente:
Connect-AzAccountNel browser visualizzato accedere al proprio account Azure.
Ottenere l'ID della sottoscrizione che si vuole usare per questo esercizio eseguendo il comando seguente:
Get-AzSubscriptionL'ID della sottoscrizione è la seconda colonna. Copiare la seconda colonna. Sembra simile a aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.
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
Passare al portale di Azure e assicurarsi di entrare nella sottoscrizione corretta.
Nel pannello di sinistra selezionare Gruppi di risorse.
Selezionare il nome del gruppo di risorse.
In Panoramica viene visualizzata una distribuzione completata.
Selezionare 1 Operazione riuscita per visualizzare i dettagli della distribuzione.
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.
Selezionare Input nel menu a sinistra.
Notare che sono elencati i parametri e i relativi valori.
Lasciare aperta la pagina nel browser. Controllerai le distribuzioni di nuovo più tardi.