Exercice : créer et déployer une pile de déploiement avec Bicep
Vous êtes au sprint 1 pour l’application des nouveaux dépôts. Vous souhaitez tester le processus de création d’une pile de déploiement avec des ressources managées dans un abonnement de développement. Dans cet exercice, vous créez une pile de déploiement délimitée à un groupe de ressources qui fait référence à un fichier Bicep. Le fichier définit un plan Azure App Service et un service Azure App Service.
Pendant ce processus, vous allez :
- Créer un fichier Bicep qui définit votre architecture initiale
- Créez une pile de déploiement étendue à un groupe de ressources à l’aide de votre fichier Bicep.
- Passez en revue la configuration de votre pile de déploiement et des ressources gérées
Cet exercice utilise l’extension Bicep pour Visual Studio Code. Assurez-vous d’installer cette extension dans Visual Studio Code.
Créer le fichier Bicep
Notre première étape consiste à créer un fichier Bicep qui définit nos ressources à utiliser avec la pile de déploiement.
Ouvrez Visual Studio Code.
Créez un fichier nommé main.bicep.
Enregistrez le fichier vide afin que Visual Studio Code charge les outils Bicep.
Vous pouvez soit sélectionner Fichier>Enregistrer sous, soit Ctrl+S dans Windows (⌘+S sur macOS). Assurez-vous de bien noter l’emplacement de sauvegarde du fichier. Par exemple, vous pouvez créer un dossier templates où enregistrer le fichier.
Ajoutez le code Bicep suivant dans le fichier. Vous allez bientôt déployer le modèle. Il est judicieux de taper le code vous-même au lieu d’effectuer un copier-coller afin de voir comment les outils vous aident à écrire vos fichiers Bicep.
// Parameters @description('The location for all resources.') param location string = 'eastus' @description('The name of the web application.') param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}' // Variables @description('The name of the app service plan.') var appServicePlanName = 'plan-deposits' // Resource - App Service Plan resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = { name: appServicePlanName location: location sku: { name: 'F1' capacity: 1 } } // Resource - Web App resource webApplication 'Microsoft.Web/sites@2023-12-01' = { name: webApplicationName location: location properties: { serverFarmId: appServicePlan.id } }
Notez que vous utilisez des expressions qui incluent l’interpolation de chaîne et la fonction
uniqueString()
pour définir des valeurs de paramètre par défaut. Une personne qui déploie ce modèle peut remplacer les valeurs de paramètre par défaut en spécifiant les valeurs au moment du déploiement, mais elle ne peut pas remplacer les valeurs des variables.Notez aussi que vous utilisez une variable pour le nom du plan Azure App Service, mais que vous utilisez des paramètres pour les autres noms. Les comptes de stockage et les applications App Service ont besoin de noms globaux uniques. Toutefois, les noms de plans App Service doivent être uniques seulement au sein de leur groupe de ressources. Cette différence signifie qu’il est possible d’utiliser le même nom de plan App Service dans différents déploiements, à condition que les déploiements soient tous dans des groupes de ressources différents.
Enregistrez les modifications du fichier.
Créer la pile de déploiement et déployer vos ressources sur Azure
Pour déployer ce modèle sur Azure, vous devez vous connecter à votre compte Azure à partir du terminal Visual Studio Code. Veillez à installer les outils Azure CLI.
Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.
Si la fenêtre de terminal affiche bash sur le côté droit, cela signifie que l’interpréteur de commandes approprié est déjà ouvert. Autrement, si vous voyez une icône d’interpréteur de commandes bash à droite, vous pouvez la sélectionner pour lancer l’interpréteur de commandes.
Si un interpréteur de commandes autre que bash apparaît, sélectionnez la flèche déroulante des interpréteurs de commandes, puis Git Bash.
Dans le terminal, accédez au répertoire où vous avez enregistré votre modèle. Par exemple, si vous avez enregistré votre modèle dans le dossier templates, vous pouvez utiliser la commande suivante :
cd templates
Installer Bicep
Exécutez la commande suivante pour vous assurer de disposer de la dernière version de Bicep :
az bicep install && az bicep upgrade
Connexion à Azure avec Azure CLI
Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :
az login
Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.
Le terminal Visual Studio Code affiche la liste des abonnements associés à ce compte.
Dans la liste, trouvez l’abonnement que vous voulez utiliser pour cet exercice.
Si vous avez manqué la liste lors de la connexion, vous pouvez utiliser l’extrait suivant pour obtenir à nouveau la liste de vos abonnements.
az account list --output table
Définissez l’abonnement par défaut pour toutes les commandes Azure CLI exécutées dans cette session.
az account set --subscription "Your Subscription Name or ID"
Créer un groupe de ressources
Nous devons créer un groupe de ressources pour notre pile de déploiement et nos ressources managées. Pour créer un groupe de ressources, exécutez la commande suivante à partir du terminal dans Visual Studio Code.
az group create \
--name rg-depositsApplication \
--location eastus
Pour déployer ce modèle sur Azure, connectez-vous à votre compte Azure dans le terminal Visual Studio Code. Vérifiez que vous avez installé Azure PowerShell.
Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.
Si la fenêtre de terminal affiche pwsh ou powershell sur le côté droit, cela signifie que l’interpréteur de commandes approprié est déjà ouvert. Autrement, si vous voyez une icône d’interpréteur de commandes PowerShell à droite, vous pouvez la sélectionner pour lancer l’interpréteur de commandes.
Si un shell autre que pwsh ou powershell apparaît, sélectionnez la flèche déroulante de l’interpréteur de commandes, puis PowerShell.
Dans le terminal, accédez au répertoire où vous avez enregistré votre modèle. Par exemple, si vous avez enregistré votre modèle dans le dossier templates, vous pouvez utiliser la commande suivante :
Set-Location -Path templates
Installer l’interface CLI Bicep
Pour utiliser Bicep à partir d’Azure PowerShell, installez l’interface CLI de Bicep.
Connectez-vous à Azure en utilisant Azure PowerShell
Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :
Connect-AzAccount
Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.
Récupérez l’ID de l’abonnement que vous voulez utiliser pour cet exercice en exécutant la commande suivante :
Get-AzSubscription
L’ID d’abonnement est la deuxième colonne. Copiez la deuxième colonne. Il doit ressembler à aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e.
Définissez l’abonnement par défaut pour toutes les commandes Azure PowerShell exécutées dans cette session.
Set-AzContext -SubscriptionId {Your subscription ID}
Créer un groupe de ressources
Nous devons créer un groupe de ressources pour notre pile de déploiement et nos ressources managées. Pour créer un groupe de ressources, exécutez la commande suivante à partir du terminal dans Visual Studio Code.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
Créer la pile de déploiement
Ensuite, nous devons créer notre pile de déploiement étendue à notre groupe de ressources récemment créé. Pour créer la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.
az stack group create \
--name stack-deposits \
--resource-group rg-depositsApplication \
--template-file ./main.bicep \
--action-on-unmanage detachAll \
--deny-settings-mode none
New-AzResourceGroupDeploymentStack `
-Name stack-deposits `
-ResourceGroupName rg-depositsApplication `
-TemplateFile ./main.bicep `
-ActionOnUnmanage DetachAll `
-DenySettingsMode None
Vérifiez la création de la pile de déploiement et les ressources managées
Lorsque vous créez une pile de déploiement et ses ressources managées, vous pouvez afficher sa configuration à l’aide de la ligne de commande ou du portail Azure. Dans cet exercice, nous utilisons Azure CLI. Pour afficher la configuration de la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
Les résultats incluent les propriétés de la pile de déploiement et l’état des ressources gérées. La sortie json doit sembler reconnaissable à l’image suivante :
{
"actionOnUnmanage": {
"managementGroups": "detach",
"resourceGroups": "detach",
"resources": "detach"
},
"bypassStackOutOfSyncError": null,
"correlationId": ".",
"debugSetting": null,
"deletedResources": [],
"denySettings": {
"applyToChildScopes": false,
"excludedActions": null,
"excludedPrincipals": null,
"mode": "none"
},
"deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
"deploymentScope": null,
"description": null,
"detachedResources": [],
"duration": "PT2M53.2734284S",
"error": null,
"failedResources": [],
"id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
"location": null,
"name": "stack-deposits",
"outputs": null,
"parametersLink": null,
"provisioningState": "succeeded",
"resourceGroup": "rg-depositsApplication",
"resources": [
{
"denyStatus": "none",
"id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
},
{
"denyStatus": "none",
"id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
"resourceGroup": "rg-depositsApplication",
"status": "managed"
}
],
"systemData": {
"createdAt": "2024-01-01T00:00:01.000000+00:00",
"createdBy": "depositsapplication@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
"lastModifiedBy": "depositsapplication@contoso.com",
"lastModifiedByType": "User"
},
"tags": {},
"template": null,
"templateLink": null,
"type": "Microsoft.Resources/deploymentStacks"
}
Notez la section ressources de la sortie. Pour chaque ressource, elle affiche son état en tant que « managé », son groupe de ressources, son ID de ressource et ses paramètres de refus.
Lorsque vous créez une pile de déploiement et ses ressources managées, vous pouvez afficher sa configuration à l’aide de la ligne de commande ou du portail Azure. Dans cet exercice, nous utilisons Azure PowerShell. Pour afficher la configuration de la pile de déploiement, exécutez la commande suivante à partir du terminal dans Visual Studio Code.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
Les résultats incluent les propriétés de la pile de déploiement et l’état des ressources gérées. La sortie PowerShell doit sembler reconnaissable à l’image suivante :
Id : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name : stack-deposits
ProvisioningState : succeeded
resourcesCleanupAction : detach
resourceGroupsCleanupAction : detach
managementGroupsCleanupAction : detach
CorrelationId : .
DenySettingsMode : none
CreationTime(UTC) : 1/01/2024 0:00:01 AM
DeploymentId : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
/subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq
Notez la section ressources de la sortie. Il définit les ressources gérées par la pile de déploiement. Vous voyez l’ID de ressource complet de chaque ressource.