Démarrage rapide : déployer une application managée du catalogue de services
Article
Dans ce guide de démarrage rapide, vous utilisez la définition d’application managée que vous avez créée à l’aide de l’un des articles de ce guide. Le déploiement crée deux groupes de ressources. L’un contient l’application managée, tandis que l’autre est un groupe de ressources managées de la ressource déployée. La définition d’application managée déploie un plan App Service, un App Service et un compte de stockage.
Créer une application managée de catalogue de services
Les exemples utilisent les noms des groupes de ressources créés dans le guide de démarrage rapide pour publier une définition d’application. Si vous avez utilisé le guide de démarrage rapide pour publier une définition avec apportez votre propre stockage, utilisez ces noms de groupes de ressources.
Publier la définition d’application : packageStorageGroup et appDefinitionGroup.
Publier une définition avec BYOS (apportez votre propre stockage) : packageStorageGroup, byosDefinitionStorageGroup et byosAppDefinitionGroup.
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 appDefinitionGroup qui a été créé lorsque vous avez déployé la définition d’application managée.
Get-AzManagedApplicationDefinition répertorie toutes les définitions disponibles dans le groupe de ressources spécifié, comme sampleManagedApplication.
Créer une variable pour l’ID de la ressource de la définition d’application managée.
Vous utilisez la valeur de la variable $definitionid lorsque vous déployez l’application managée.
Pour obtenir la définition d’application managée avec Azure CLI, exécutez les commandes suivantes.
Dans Visual Studio Code, ouvrez une nouvelle session de terminal Bash et connectez-vous à votre abonnement Azure. Si Git y est installé, sélectionnez Git Bash.
az login
La commande ouvre votre navigateur par défaut et vous invite à vous connecter à Azure. Pour plus d’informations, accédez à Se connecter avec Azure CLI.
À partir d’Azure CLI, obtenez la définition de votre application managée. Dans cet exemple, utilisez le nom de groupe de ressources appDefinitionGroup qui a été créé lorsque vous avez déployé la définition d’application managée.
az managedapp definition list --resource-group appDefinitionGroup
La commande répertorie toutes les définitions disponibles dans le groupe de ressources spécifié, comme sampleManagedApplication.
Créer une variable pour l’ID de la ressource de la définition d’application managée.
definitionid=$(az managedapp definition show --resource-group appDefinitionGroup --name sampleManagedApplication --query id --output tsv)
Vous utilisez la valeur de la variable $definitionid lorsque vous déployez l’application managée.
Pour obtenir la définition d’application managée à partir du portail Azure, procédez comme suit.
Vous devez également créer un nom pour le groupe de ressources de l’application managée. Le groupe de ressources est créé lorsque vous déployez l’application managée.
Exécutez les commandes suivantes pour créer le nom du groupe de ressources managé.
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-sampleManagedApplication-20230512103059. Vous utilisez la valeur de la variable $mrgname lorsque vous déployez l’application managée.
Vous devez fournir plusieurs paramètres à la commande de déploiement de l’application managée. Vous pouvez utiliser une chaîne au format JSON ou créer un fichier JSON. Dans cet exemple, nous utilisons une chaîne au format JSON. Le caractère d’échappement PowerShell des guillemets est le caractère backtick (`). Le backtick est également utilisé pour une continuation de ligne, ainsi les commandes peuvent être réparties sur plusieurs lignes.
La syntaxe de la chaîne au format JSON est la suivante :
Pour plus de lisibilité, la chaîne JSON terminée utilise le backtick pour une continuation de ligne. Les valeurs sont stockées dans la variable $params utilisée dans la commande de déploiement. Les paramètres de la chaîne JSON sont requis pour déployer les ressources managées.
appServicePlanName : créer 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 du 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.
Créez un groupe de ressources pour le déploiement de votre application managée.
az group create --name applicationGroup --location westus
Vous devez également créer un nom et un chemin d’accès pour le groupe de ressources de l’application managée. Le groupe de ressources est créé lorsque vous déployez l’application managée.
Exécutez les commandes suivantes pour créer le chemin d’accès au groupe de ressources managées.
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-sampleManagedApplication-20230512103059. Les variables mrgname et subid sont concaténées pour créer la valeur de la variable mrgpath qui crée le groupe de ressources managées au cours du déploiement.
Vous devez fournir plusieurs paramètres à la commande de déploiement de l’application managée. Vous pouvez utiliser une chaîne au format JSON ou créer un fichier JSON. Dans cet exemple, nous utilisons une chaîne au format JSON. Dans Bash, le caractère d’échappement utilisé pour les guillemets est la barre oblique inverse (\). La barre oblique inverse est également utilisée pour la continuation de ligne afin que les commandes puissent s’étendre sur plusieurs lignes.
La syntaxe de la chaîne au format JSON est la suivante :
Pour plus de lisibilité, la chaîne JSON terminée utilise la barre oblique inversée pour une continuation de ligne. Les valeurs sont stockées dans la variable params utilisée dans la commande de déploiement. Les paramètres de la chaîne JSON sont requis pour déployer les ressources managées.
appServicePlanName : créer 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 du 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.
Fournissez des valeurs dans l’onglet De base, puis sélectionnez Suivant.
Abonnement : sélectionnez l’abonnement où vous souhaitez déployer l’application managée.
Groupe de ressources : sélectionnez le groupe de ressources. Pour cet exemple, créez un groupe de ressources nommé applicationGroup.
Région : sélectionnez l’emplacement où vous souhaitez déployer la ressource.
Nom de l’application : attribuez un nom à votre application managée. Pour cet exemple, utilisez demoManagedApplication.
Nom du groupe de ressources managées : nom du groupe de ressources managées qui contient les ressources déployées pour l’application managée. Le nom par défaut est au format mrg-{definitionName}-{dateTime}, mais vous pouvez le modifier.
Fournissez des valeurs pour l’onglet Paramètres d’application web, puis sélectionnez Suivant.
Nom du plan App Service : 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.
Préfixe de nom du plan App Service : créez un préfixe pour le nom du 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.
Paramètres utilisés dans la commande de déploiement :
Name : spécifier le nom de l’application managée. Pour cet exemple, utilisez demoManagedApplication.
ResourceGroupName : nom du groupe de ressources que vous avez créé pour l’application managée.
Location : spécifiez la région pour le déploiement de ressources. Pour cet exemple, utilisez westus.
ManagedResourceGroupName : utilise la valeur de la variable de $mrgname. Le groupe de ressources managé est créé lorsque l’application managée est déployée.
ManagedApplicationDefinitionId : utilise la valeur de la variable $definitionid pour l’ID de ressource de la définition d’application managée.
Kind : spécifie ce type d’application managée. Cet exemple utilise ServiceCatalog.
Parameter : utilise la valeur de la variable $params dans la chaîne au format JSON.
Exécutez la commande suivante pour déployer l’application managée.
Paramètres utilisés dans la commande de déploiement :
name : spécifier le nom de l’application managée. Pour cet exemple, utilisez demoManagedApplication.
resource-group : nom du groupe de ressources que vous avez créé pour l’application managée.
location : spécifiez la région pour le déploiement de ressources. Pour cet exemple, utilisez westus.
managed-rg-id : utilise la valeur de la variable de $mrgpath. Le groupe de ressources managé est créé lorsque l’application managée est déployée.
managedapp-definition-id : utilise la valeur de la variable $definitionid pour l’ID de ressource de la définition d’application managée.
kind : spécifie ce type d’application managée. Cet exemple utilise ServiceCatalog.
parameters : utilise la valeur de la variable $params dans la chaîne au format JSON.
Examinez le résumé des valeurs que vous avez sélectionnées et vérifiez qu'aucune erreur n'est affichée. Sélectionnez Créer pour déployer l’application managée.
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.
az managedapp list --resource-group applicationGroup
La commande suivante analyse les données relatives à l’application managée pour afficher uniquement le nom de l’application et l’état d’approvisionnement.
az managedapp list --resource-group applicationGroup --query "[].{Name:name, provisioningState:provisioningState}"
Accédez au groupe de ressources nommé applicationGroup et sélectionnez Vue d’ensemble. Le groupe de ressources contient votre application managée nommée demoManagedApplication.
Sélectionnez le nom de l’application managée pour obtenir plus d’informations, comme le lien vers le groupe de ressources managé.
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.
Vous pouvez également répertorier les affectations de refus du groupe de ressources managé.
Get-AzDenyAssignment -ResourceGroupName $mrgname
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.
az resource list --resource-group $mrgname
Exécutez la commande suivante pour afficher uniquement la liste des noms, des types et de l’état d’approvisionnement des ressources managées.
az resource list --resource-group $mrgname --query "[].{Name:name, Type:type, provisioningState:provisioningState}"
Exécutez la commande suivante pour afficher la liste des attributions de rôles pour le groupe utilisé dans la définition de l’application managée.
az role assignment list --resource-group $mrgname
La commande suivante analyse les données relatives au rôle attribué au groupe.
az role assignment list --resource-group $mrgname --role Owner --query "[].{ResourceGroup:resourceGroup, GroupName:principalName, RoleDefinition:roleDefinitionId, Role:roleDefinitionName}"
Pour passer en revue les affectations de refus du groupe de la ressource managée, utilisez le portail Azure ou les commandes Azure PowerShell.
Accédez au groupe de ressources managées ayant le préfixe de nom mrg-sampleManagedApplication et sélectionnez Vue d’ensemble pour afficher les ressources déployées. Le groupe de ressources contient un App Service, un plan App Service et un compte de stockage.
Le groupe de ressources managé et chaque ressource créée par l’application managée ont une attribution de rôle. Quand vous avez utilisé un article de démarrage rapide pour créer la définition, vous avez créé un groupe Microsoft Entra. Ce groupe a été utilisé dans la définition d’application managée. Lorsque vous avez déployé l’application managée, une attribution de rôle pour ce groupe a été ajoutée aux ressources managées.
Pour afficher l’attribution de rôle à partir du portail Azure :
Accédez à votre groupe de ressources mrg-sampleManagedApplication.
Sélectionnez Contrôle d’accès (IAM)>Attributions de rôles.
Vous pouvez également afficher les affectations de refus de la ressource.
L’attribution de rôle donne à l’éditeur de l’application un accès pour gérer le compte de stockage. Dans cet exemple, l’éditeur pourrait être votre service informatique. Les affectations de refus empêchent les clients d’apporter des modifications à la configuration d’une ressource managée. Les applications managées sont conçues afin que les clients n’aient pas besoin de gérer les ressources. L’attribution de refus exclut le groupe Microsoft Entra qui a été attribué dans Attributions de rôle.
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, dans ce guide de démarrage rapide, vous avez créé les groupes de ressources applicationGroup et un groupe de ressources managées ayant le préfixe mrg-sampleManagedApplication.
La commande vous invite à confirmer que vous souhaitez supprimer le groupe de ressources.
Remove-AzResourceGroup -Name applicationGroup
La commande vous invite à confirmer, puis vous renvoie à l’invite de commandes pendant que les ressources sont supprimées.
az group delete --resource-group applicationGroup --no-wait
À partir de l’Accueil du portail Azure, dans le champ de recherche, entrez groupes de ressources.
Sélectionnez Groupes de ressources.
Sélectionnez applicationGroup et Supprimer le groupe de ressources.
Pour confirmer la suppression, entrez le nom du groupe de ressources, puis sélectionnez Supprimer.
Si vous souhaitez supprimer la définition d’application managée, supprimez les groupes de ressources que vous avez créés dans les articles de démarrage rapide.
Publier la définition d’application : packageStorageGroup et appDefinitionGroup.
Publier une définition avec BYOS (apportez votre propre stockage) : packageStorageGroup, byosDefinitionStorageGroup et byosAppDefinitionGroup.