Criar um aplicativo Web mais o Cache Redis do Azure usando um modelo
Neste artigo, você aprende como criar um modelo do Azure Resource Manager que implanta um aplicativo Web do Azure com o Cache Redis. Você aprenderá os seguintes detalhes de implantação:
- Como definir quais recursos são implantados
- Como definir os parâmetros que são especificados quando a implantação é executada
Você pode usar este modelo para suas próprias implantações ou personalizá-lo para atender às suas necessidades.
Para saber mais sobre a criação de modelos, consulte Criação de modelos do Azure Resource Manager. Para saber mais sobre a sintaxe JSON e as propriedades dos tipos de recurso de cache, consulte Tipos de recurso de Microsoft.Cache.
Para o modelo completo, consulte aplicativo Web com o Cache do Azure para o modelo de Redis.
O que você implantará
Neste modelo, você implanta:
- Aplicativo Web do Azure
- Cache Redis do Azure
Para executar a implantação automaticamente, selecione o seguinte botão:
Parâmetros para especificar
Com o Gerenciador de Recursos do Azure, você define parâmetros para os valores que deseja especificar quando o modelo é implantado. O modelo inclui uma seção chamada Parâmetros, que contém todos os valores de parâmetro. Você deve definir um parâmetro para esses valores que variam de acordo com o projeto que você está implantando ou o ambiente no qual você está implantando. Não defina parâmetros para valores constantes. Cada valor de parâmetro é usado no modelo para definir os recursos que são implantados.
Ao definir parâmetros, use o campo allowedValues para especificar quais valores um usuário pode fornecer durante a implantação. Use o campo defaultValue para atribuir um valor para o parâmetro, se nenhum valor for fornecido durante a implantação.
Descreveremos cada parâmetro no modelo.
siteName
O nome do aplicativo Web que você deseja criar.
"siteName":{
"type":"string"
}
hostingPlanName
O nome do plano do Serviço de Aplicativo a usar para hospedar o aplicativo Web.
"hostingPlanName":{
"type":"string"
}
sku
A camada de preços do plano de hospedagem.
"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."
}
}
O modelo define os valores permitidos para esse parâmetro e atribui um valor padrão igual a S1
se nenhum valor é especificado.
workerSize
O tamanho da instância do plano de hospedagem (pequeno, médio ou grande).
"workerSize":{
"type":"string",
"allowedValues":[
"0",
"1",
"2"
],
"defaultValue":"0"
}
O modelo define os valores permitidos para esse parâmetro (0
, 1
ou 2
) e atribui um valor padrão igual a 0
se nenhum valor é especificado. Os valores correspondem a pequeno, médio e grande.
cacheSKUName
O tipo de preço do novo Cache do Azure para Redis.
"cacheSKUName": {
"type": "string",
"allowedValues": [
"Basic",
"Standard",
"Premium"
],
"defaultValue": "Basic",
"metadata": {
"description": "The pricing tier of the new Azure Cache for Redis."
}
},
O modelo define os valores permitidos para este parâmetro (Básico, Standard ou Premium) e atribui um valor padrão (Basic) se nenhum valor for especificado. Basic fornece um único nó com vários tamanhos disponíveis, até 53 GB. Standard fornece Principal/Réplica de dois nós com vários tamanhos disponíveis, até 53 GB e SLA de 99,9%.
cacheSKUFamily
A família do SKU.
"cacheSKUFamily": {
"type": "string",
"allowedValue/s": [
"C",
"P"
],
"defaultValue": "C",
"metadata": {
"description": "The family for the sku."
}
},
cacheSKUCapacity
O tamanho da nova instância do Cache do Azure para Redis.
Para as famílias Básico e 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. "
}
}
A capacidade do cache de valor Premium é definida da mesma forma, exceto que os valores permitidos vão de 1 a 5 em vez de 0 a 6.
O modelo define os valores inteiros permitidos para este parâmetro (0 a 6 para as famílias Básico e Standard; 1 a 5 para a família Premium). Se nenhum valor for especificado, o modelo atribui um valor padrão de 0 para Básico e Standard, 1 para Premium.
Os valores correspondem aos seguintes tamanhos de cache:
Valor | Básico e Standard tamanho do cache |
Premium tamanho do cache |
---|---|---|
0 | 250 MB (padrão) | N/D |
1 | 1 GB | 6 GB (padrão) |
2 | 2,5 GB | 13 GB |
3 | 6 GB | 26 GB |
4 | 13 GB | 53 GB |
5 | 26 GB | 120 GB |
6 | 53 GB | N/D |
Nomes de variáveis
Este modelo usa variáveis para construir nomes para os recursos. Ele usa a função uniqueString para construir um valor com base na ID do grupo de recursos.
"variables": {
"hostingPlanName": "[concat('hostingplan', uniqueString(resourceGroup().id))]",
"webSiteName": "[concat('webSite', uniqueString(resourceGroup().id))]",
"cacheName": "[concat('cache', uniqueString(resourceGroup().id))]"
},
Recursos a implantar
Plano do Serviço de Aplicativo
Cria o plano de serviço para hospedar o aplicativo Web. Forneça o nome do plano por meio do parâmetro hostingPlanName . O local do plano é o mesmo usado para o grupo de recursos. O tipo de preços e o tamanho do trabalhador são especificados nos parâmetros sku e 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 Redis do Azure
Cria o Cache Redis do Azure que é usado com o aplicativo Web. O nome do cache é especificado na variável cacheName .
O modelo cria o cache no mesmo local que o grupo de recursos.
{
"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')]"
}
}
}
Aplicativo Web (Cache do Azure para Redis)
Cria o aplicativo Web com o nome especificado na variável webSiteName .
Observe que o aplicativo Web está configurado com as propriedades de configuração de aplicativo que o habilitam a trabalhar com o Cache Redis do Azure. Essas configurações de aplicativo são criadas dinamicamente com base nos valores fornecidos durante a implantação.
{
"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)]"
}
}
]
}
Aplicativo Web (RedisEnterprise)
Para RedisEnterprise, como os tipos de recursos são ligeiramente diferentes, a maneira de fazer listKeys é diferente:
{
"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)]"
}
}
]
}
Comandos para executar a implantação
Para implantar os recursos no Azure, você deve estar conectado à sua conta do Azure e usar o módulo do Gerenciador de Recursos do Azure. Para obter informações sobre como usar o Gerenciador de Recursos do Azure com o Azure PowerShell ou CLI do Azure, consulte:
- Gerenciar recursos do Azure usando o Azure PowerShell
- Gerenciar recursos do Azure usando a CLI do Azure.
Os exemplos a seguir pressupõem que você já tem um grupo de recursos em sua conta com o nome especificado.
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
CLI do Azure
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