Créer une application web avec un cache Azure pour Redis à l’aide d’un modèle
Dans cette rubrique, vous allez apprendre à créer un modèle Azure Resource Manager qui déploie une application web Azure avec Azure Cache pour Redis. Vous découvrirez les informations suivantes sur les déploiements :
- comment définir les ressources à déployer ;
- comment définir les paramètres spécifiés lors de l’exécution du déploiement.
Vous pouvez utiliser ce modèle pour vos propres déploiements, ou le personnaliser afin qu’il réponde à vos besoins.
Pour en savoir plus sur la création de modèles, voir Création de modèles Azure Resource Manager. Pour en savoir plus sur les propriétés et la syntaxe JSON des types de ressources de cache, consultez Types de ressources Microsoft.Cache.
Pour obtenir l’intégralité du modèle, consultez la page Application web avec un modèle de cache Azure pour Redis.
Ce que vous allez déployer
Dans ce modèle, vous allez déployer les éléments suivants :
- Application web Azure
- Cache Azure pour Redis
Pour exécuter automatiquement le déploiement, sélectionnez le bouton ci-dessous :
Paramètres à spécifier
Azure Resource Manager vous permet de définir des paramètres pour les valeurs que vous voulez spécifier lorsque le modèle est déployé. Ce modèle inclut une section appelée Paramètres, qui contient toutes les valeurs de paramètres. Vous devez définir un paramètre pour les valeurs qui varient en fonction du projet que vous déployez ou de l’environnement dans lequel vous effectuez le déploiement. Ne définissez pas de paramètres pour les valeurs qui sont constantes. Chaque valeur de paramètre est utilisée dans le modèle pour définir les ressources déployées.
Lorsque vous définissez les paramètres, utilisez le champ allowedValues pour spécifier les valeurs qu'un utilisateur peut fournir au cours du déploiement. Utilisez le champ defaultValue pour affecter une valeur au paramètre, si aucune valeur n'est fournie pendant le déploiement.
Nous allons décrire chaque paramètre du modèle.
siteName
Le nom de l'application web que vous souhaitez créer.
"siteName":{
"type":"string"
}
hostingPlanName
Le nom du plan App Service à utiliser pour héberger l'application web.
"hostingPlanName":{
"type":"string"
}
sku
Le niveau de tarification du plan d'hébergement.
"sku": {
"type": "string",
"allowedValues": [
"F1",
"D1",
"B1",
"B2",
"B3",
"S1",
"S2",
"S3",
"P1",
"P2",
"P3",
"P4"
],
"defaultValue": "S1",
"metadata": {
"description": "The pricing tier for the hosting plan."
}
}
Le modèle définit les valeurs autorisées pour ce paramètre et affecte une valeur par défaut de S1
si aucune valeur n’est spécifiée.
workerSize
La taille d'instance du plan d'hébergement (petite, moyenne ou grande).
"workerSize":{
"type":"string",
"allowedValues":[
"0",
"1",
"2"
],
"defaultValue":"0"
}
Le modèle définit les valeurs autorisées pour ce paramètre (0
, 1
ou 2
), et affecte une valeur par défaut de 0
si aucune valeur n’est spécifiée. Les valeurs correspondent à une taille petite, moyenne et grande.
cacheSKUName
Niveau de tarification du nouveau cache Azure pour Redis.
"cacheSKUName": {
"type": "string",
"allowedValues": [
"Basic",
"Standard",
"Premium"
],
"defaultValue": "Basic",
"metadata": {
"description": "The pricing tier of the new Azure Cache for Redis."
}
},
Le modèle définit les valeurs autorisées pour ce paramètre (De base, Standard ou Premium) et affecte une valeur par défaut (De base) si aucune valeur n’est spécifiée. Le niveau De base fournit un nœud unique disponible en plusieurs tailles, jusqu’à 53 Go. Le niveau Standard fournit deux nœuds primaire/réplica disponibles en plusieurs tailles jusqu’à 53 Go et un contrat SLA de 99,9 %.
cacheSKUFamily
Famille de la référence (SKU).
"cacheSKUFamily": {
"type": "string",
"allowedValue/s": [
"C",
"P"
],
"defaultValue": "C",
"metadata": {
"description": "The family for the sku."
}
},
cacheSKUCapacity
Taille de la nouvelle instance de cache Azure pour Redis.
Pour les familles De base et Standard :
"cacheSKUCapacity": {
"type": "int",
"allowedValues": [
0,
1,
2,
3,
4,
5,
6
],
"defaultValue": 0,
"metadata": {
"description": "The size of the new Azure Cache for Redis instance. "
}
}
La capacité de la mémoire cache de la valeur Premium est définie de la même manière, sauf que les valeurs autorisées vont de 1 à 5 au lieu de 0 à 6.
Le modèle définit les valeurs entières autorisées pour ce paramètre (0 à 6 pour les familles De base et Standard ; 1 à 5 pour la famille Premium). Si aucune valeur n'est spécifiée, le modèle affecte une valeur par défaut de 0 pour les valeurs De base et Standard, et de 1 pour Premium.
Les valeurs correspondent aux tailles de cache suivantes :
Valeur | De base et Standard taille du cache |
Premium taille du cache |
---|---|---|
0 | 250 Mo (par défaut) | n/a |
1 | 1 Go | 6 Go (par défaut) |
2 | 2,5 Go | 13 Go |
3 | 6 Go | 26 Go |
4 | 13 Go | 53 Go |
5 | 26 Go | 120 Go |
6 | 53 Go | n/a |
Variables pour les noms
Ce modèle utilise des variables afin de créer des noms pour les ressources. Elle utilise la fonction uniqueString pour construire une valeur basée sur l’ID du groupe de ressources.
"variables": {
"hostingPlanName": "[concat('hostingplan', uniqueString(resourceGroup().id))]",
"webSiteName": "[concat('webSite', uniqueString(resourceGroup().id))]",
"cacheName": "[concat('cache', uniqueString(resourceGroup().id))]"
},
Ressources à déployer
Plan App Service
Crée le plan de service pour l'hébergement de l'application web. Vous fournissez le nom du plan à l'aide du paramètre hostingPlanName . L’emplacement du plan est identique à celui utilisé pour le groupe de ressources. Le niveau tarifaire et la taille de worker sont spécifiés dans les paramètres sku et workerSize.
{
"apiVersion": "2015-08-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[resourceGroup().location]",
"sku": {
"name": "[parameters('sku')]",
"capacity": "[parameters('workerSize')]"
},
"properties": {
"name": "[parameters('hostingPlanName')]"
}
},
Cache Azure pour Redis
Crée le cache Azure pour Redis utilisé avec l’application web. Le nom du cache est spécifié dans la variable cacheName .
Le modèle crée le cache au même emplacement que le groupe de ressources.
{
"name": "[variables('cacheName')]",
"type": "Microsoft.Cache/Redis",
"location": "[resourceGroup().location]",
"apiVersion": "2015-08-01",
"dependsOn": [ ],
"tags": {
"displayName": "cache"
},
"properties": {
"sku": {
"name": "[parameters('cacheSKUName')]",
"family": "[parameters('cacheSKUFamily')]",
"capacity": "[parameters('cacheSKUCapacity')]"
}
}
}
Application web (Azure Cache pour Redis)
Crée l’application web avec le nom spécifié dans la variable webSiteName .
Notez que l’application web est configurée selon des paramètres qui lui permettent d’utiliser le cache Azure pour Redis. Ces paramètres sont créés de façon dynamique en fonction des valeurs fournies lors du déploiement.
{
"apiVersion": "2015-08-01",
"name": "[variables('webSiteName')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Web/serverFarms/', variables('hostingPlanName'))]"
],
"tags": {
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', variables('hostingPlanName'))]": "empty",
"displayName": "Website"
},
"properties": {
"name": "[variables('webSiteName')]",
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
},
"resources": [
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "appsettings",
"dependsOn": [
"[concat('Microsoft.Web/Sites/', variables('webSiteName'))]",
"[concat('Microsoft.Cache/Redis/', variables('cacheName'))]"
],
"properties": {
"CacheConnection": "[concat(variables('cacheHostName'),'.redis.cache.windows.net,abortConnect=false,ssl=true,password=', listKeys(resourceId('Microsoft.Cache/Redis', variables('cacheName')), '2015-08-01').primaryKey)]"
}
}
]
}
Application web (RedisEnterprise)
Pour RedisEnterprise, étant donné que les types de ressources sont légèrement différents, la manière de créer des listKeys est différente :
{
"apiVersion": "2015-08-01",
"name": "[variables('webSiteName')]",
"type": "Microsoft.Web/sites",
"location": "[resourceGroup().location]",
"dependsOn": [
"[concat('Microsoft.Web/serverFarms/', variables('hostingPlanName'))]"
],
"tags": {
"[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', variables('hostingPlanName'))]": "empty",
"displayName": "Website"
},
"properties": {
"name": "[variables('webSiteName')]",
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('hostingPlanName'))]"
},
"resources": [
{
"apiVersion": "2015-08-01",
"type": "config",
"name": "appsettings",
"dependsOn": [
"[concat('Microsoft.Web/Sites/', variables('webSiteName'))]",
"[concat('Microsoft.Cache/RedisEnterprise/databases/', variables('cacheName'), "/default")]",
],
"properties": {
"CacheConnection": "[concat(variables('cacheHostName'),abortConnect=false,ssl=true,password=', listKeys(resourceId('Microsoft.Cache/RedisEnterprise', variables('cacheName'), 'default'), '2020-03-01').primaryKey)]"
}
}
]
}
Commandes pour l’exécution du déploiement
Pour déployer les ressources sur Azure, vous devez être connecté à votre compte Azure et utiliser le module Azure Resource Manager. Pour en savoir plus sur l'utilisation de ce module avec Azure PowerShell ou la CLI Azure, consultez :
- Gérer des ressources Azure à l’aide d’Azure PowerShell
- Gérer des ressources Azure à l’aide d’Azure CLI
Les exemples suivants supposent que vous disposez déjà d'un groupe de ressources dans votre compte, qui porte le nom spécifié.
PowerShell
New-AzResourceGroupDeployment -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/web-app-with-redis-cache/azuredeploy.json -ResourceGroupName ExampleDeployGroup
Azure CLI
azure group deployment create --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/web-app-with-redis-cache/azuredeploy.json -g ExampleDeployGroup