Démarrage rapide : Utiliser Bicep pour déployer une définition d’application managée Azure
Ce démarrage rapide indique comment utiliser Bicep pour déployer une définition d’application managée Azure depuis votre catalogue de services. Les définitions contenues dans votre catalogue de services sont accessibles aux membres de votre organisation.
Pour déployer une définition d’application managée depuis votre catalogue de services, effectuez les tâches suivantes :
- Utilisez Bicep pour développer un modèle qui déploie une définition d’application managée.
- Créez un fichier de paramètres pour le déploiement.
- Déployez la définition d’application managée depuis votre catalogue de services.
Prérequis
Pour effectuer les tâches mentionnées dans cet article, vous avez besoin des éléments suivants :
- Déployez une définition avec Démarrage rapide : utiliser Bicep pour créer, puis publier une définition d’application managée Azure.
- Compte Azure avec un abonnement actif. Si vous n’avez pas de compte, créez-en un gratuitement avant de commencer.
- Visual Studio Code avec la dernière version de l’extension Outils Azure Resource Manager Pour les fichiers Bicep, installez l’extension Bicep pour Visual Studio Code.
- La version la plus récente d’Azure PowerShell ou Azure CLI.
Obtenir une définition d’application managée
Pour obtenir la définition d’application managée avec Azure PowerShell, exécutez les commandes suivantes.
Dans Visual Studio Code, ouvrez un nouveau terminal PowerShell et connectez-vous à votre abonnement Azure.
Connect-AzAccount
La commande ouvre votre navigateur par défaut et vous invite à vous connecter à Azure. Pour plus d’informations, accédez à Se connecter avec Azure PowerShell.
À partir d’Azure PowerShell, obtenez la définition de votre application managée. Dans cet exemple, utilisez le nom de groupe de ressources bicepDefinitionGroup qui a été créé lorsque vous avez déployé la définition d’application managée.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup
Get-AzManagedApplicationDefinition
liste toutes les définitions disponibles dans le groupe de ressources spécifié, comme sampleBicepManagedApplication.
La commande suivante analyse la sortie pour afficher uniquement le nom de la définition et le nom du groupe de ressources. Ces noms sont utilisés au moment de déployer l’application managée.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | Select-Object -Property Name, ResourceGroupName
Créer le fichier Bicep
Ouvrez Visual Studio Code et créez un fichier sous le nom deployServiceCatalog.bicep. Copiez et collez le code suivant dans le fichier et enregistrez-le.
@description('Region where the resources are deployed.')
param location string = resourceGroup().location
@description('Resource group name where the definition is stored.')
param definitionRG string
@description('Name of the service catalog definition.')
param definitionName string
// Parameters for the managed application's resource deployment
@description('Name of the managed application.')
param managedAppName string
@description('Name for the managed resource group.')
param mrgName string
@maxLength(40)
@description('Service plan name with maximum 40 alphanumeric characters and hyphens. Must be unique within a resource group in your subscription.')
param appServicePlanName string
@maxLength(47)
@description('Globally unique across Azure. Maximum of 47 alphanumeric characters or hyphens.')
param appServiceNamePrefix string
@description('Resource ID for the managed application definition.')
var appResourceId = resourceId('${definitionRG}', 'Microsoft.Solutions/applicationdefinitions', '${definitionName}')
@description('Creates the path for the managed resource group. The resource group is created during deployment.')
var mrgId = '${subscription().id}/resourceGroups/${mrgName}'
resource bicepServiceCatalogApp 'Microsoft.Solutions/applications@2021-07-01' = {
name: managedAppName
kind: 'ServiceCatalog'
location: location
properties: {
applicationDefinitionId: appResourceId
managedResourceGroupId: mrgId
parameters: {
appServicePlanName: {
value: appServicePlanName
}
appServiceNamePrefix: {
value: appServiceNamePrefix
}
}
}
}
Pour plus d’informations sur le type de ressource, accédez à Microsoft.Solutions/applications.
Créer le fichier de paramètres
Ouvrez Visual Studio Code et créez un fichier de paramètres nommé deployServiceCatalog-parameters.bicepparam. Copiez et collez le code suivant dans le fichier et enregistrez-le.
using './deployServiceCatalog.bicep'
param definitionName = 'sampleBicepManagedApplication'
param definitionRG = 'bicepDefinitionGroup'
param managedAppName = 'sampleBicepManagedApp'
param mrgName = 'placeholder for managed resource group name'
param appServicePlanName = 'demoAppServicePlan'
param appServiceNamePrefix = 'demoApp'
Vous devez fournir plusieurs paramètres pour le déploiement de l’application managée :
Paramètre | Valeur |
---|---|
definitionName |
Nom de la définition du catalogue de services. Cet exemple utilise sampleBicepManagedApplication. |
definitionRG |
Nom du groupe de ressources dans lequel la définition est stockée. Cet exemple utilise bicepDefinitionGroup. |
managedAppName |
Nom de l’application managée déployée. Cet exemple utilise sampleBicepManagedApp. |
mrgName |
Nom unique pour le groupe de ressources managé contenant les ressources déployées de l’application. Le groupe de ressources est créé lorsque vous déployez l’application managée. Pour créer un nom de groupe de ressources managées, exécutez les commandes qui suivent cette liste de paramètres et utilisez la valeur $mrgname pour remplacer l’espace réservé dans le fichier de paramètres. |
appServicePlanName |
Créez un nom de plan. Vous disposez d’un maximum de 40 caractères alphanumériques et traits d’union. Par exemple, demoAppServicePlan. Les noms de plan App Service doivent être uniques au sein d’un groupe de ressources de votre abonnement. |
appServiceNamePrefix |
Créez un préfixe pour le nom de plan. Vous disposez d’un maximum de 47 caractères alphanumériques ou traits d’union. Par exemple, demoApp. Pendant le déploiement, le préfixe est concaténé avec une chaîne unique pour créer un nom globalement unique dans Azure. |
Vous pouvez exécuter les commandes suivantes pour créer un nom pour le groupe de ressources managées.
$mrgprefix = 'mrg-sampleBicepManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname
Les variables $mrgprefix
et $mrgtimestamp
sont concaténées et stockées dans la variable $mrgname
. La valeur de la variable se présente sous la forme mrg-sampleBicepManagedApplication-20230512103059. Vous utilisez la valeur de la variable $mrgname
lorsque vous déployez l’application managée.
Déployer l’application managée
Utilisez Azure PowerShell ou Azure CLI pour créer un groupe de ressources et déployer l’application managée.
New-AzResourceGroup -Name bicepApplicationGroup -Location westus
$deployparms = @{
ResourceGroupName = "bicepApplicationGroup"
TemplateFile = "deployServiceCatalog.bicep"
TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
Name = "deployServiceCatalogApp"
}
New-AzResourceGroupDeployment @deployparms
La variable $deployparms
utilise PowerShell splatting pour améliorer la lisibilité pour les valeurs de paramètres.
Il se peut que votre déploiement affiche un avertissement Linter Bicep indiquant que la propriété managedResourceGroupId
attend un ID de ressource. Sachant que le groupe de ressources managées est créé pendant le déploiement, aucun ID de ressource n’est disponible pour la propriété.
Afficher les résultats
Une fois l’application managée de catalogue de services déployée, vous avez deux nouveaux groupes de ressources. Un groupe de ressources contient l’application managée. L’autre groupe de ressources contient les ressources managées qui ont été déployées. Dans cet exemple, un App Service, un plan App Service et un compte de stockage.
Application managée
Une fois le déploiement terminé, vous pouvez vérifier l’état de votre application managée.
Exécutez la commande suivante pour vérifier l’état de l’application managée.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup
Développez les propriétés pour faciliter la lecture des informations Properties
.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties
Ressources managées
Vous pouvez afficher les ressources déployées sur le groupe de ressources managé.
Pour afficher les ressources du groupe de ressources managé, exécutez la commande suivante. Vous avez créé la variable $mrgname
lorsque vous avez créé les paramètres.
Get-AzResource -ResourceGroupName $mrgname
Pour afficher toutes les attributions de rôles du groupe de ressources managé.
Get-AzRoleAssignment -ResourceGroupName $mrgname
La définition d’application managée que vous avez créée dans les articles de démarrage rapide utilisait un groupe ayant l’attribution de rôle Propriétaire. Vous pouvez afficher le groupe à l’aide de la commande suivante.
Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner
Vous pouvez également répertorier les affectations de refus du groupe de ressources managé.
Get-AzDenyAssignment -ResourceGroupName $mrgname
Nettoyer les ressources
Lorsque vous en avez terminé avec l’application managée, vous pouvez supprimer les groupes de ressources, ce qui supprime toutes les ressources que vous avez créées. Par exemple, supposons que vous avez créé les groupes de ressources bicepApplicationGroup et un groupe de ressources managées avec le préfixe mrg-bicepManagedApplication.
Lorsque vous supprimez le groupe de ressources bicepApplicationGroup, l’application managée, le groupe de ressources managées et toutes les ressources Azure sont supprimés.
La commande vous invite à confirmer que vous souhaitez supprimer le groupe de ressources.
Remove-AzResourceGroup -Name bicepApplicationGroup
Si vous souhaitez supprimer la définition d’application managée, supprimez les groupes de ressources que vous avez créés et qui se nomment packageStorageGroup et bicepDefinitionGroup.
Étapes suivantes
- Pour savoir comment créer et publier les fichiers de définition d’une application managée via Azure PowerShell, Azure CLI ou le portail, consultez Démarrage rapide : Créer et publier une définition d’application managée Azure.
- Pour utiliser votre propre stockage pour créer et publier les fichiers de définition d’une application managée, consultez Démarrage rapide : apportez votre propre stockage pour créer et publier une définition d’application managée Azure.