Creare un’app Web più Cache Redis utilizzando un modelloCreate a Web App plus Redis Cache using a template

In questo argomento viene illustrato come creare un modello di Gestione risorse di Azure che consente di distribuire un'app Web di Azure con Cache Redis.In this topic, you will learn how to create an Azure Resource Manager template that deploys an Azure Web App with Redis cache. Verrà illustrato come definire le risorse da distribuire e i parametri specificati quando viene eseguita la distribuzione.You will learn how to define which resources are deployed and how to define parameters that are specified when the deployment is executed. È possibile usare questo modello per le proprie distribuzioni o personalizzarlo in base alle esigenze.You can use this template for your own deployments, or customize it to meet your requirements.

Per altre informazioni sulla creazione dei modelli, vedere Creazione di modelli di Gestione risorse di Azure.For more information about creating templates, see Authoring Azure Resource Manager Templates.

Per il modello completo, vedere l’articolo relativo all’ app Web con modello Cache Redis.For the complete template, see Web App with Redis Cache template.

Elementi distribuitiWhat you will deploy

In questo modello, verrà distribuito quanto segue:In this template, you will deploy:

  • App Web di AzureAzure Web App
  • Cache Redis di Azure.Azure Redis Cache.

Per eseguire automaticamente la distribuzione, fare clic sul pulsante seguente:To run the deployment automatically, click the following button:

Distribuzione in AzureDeploy to Azure

Parametri da specificareParameters to specify

Gestione risorse di Azure permette di definire i parametri per i valori da specificare durante la distribuzione del modello.With Azure Resource Manager, you define parameters for values you want to specify when the template is deployed. Il modello include una sezione denominata Parametri che contiene tutti i valori dei parametri.The template includes a section called Parameters that contains all of the parameter values. È necessario definire un parametro per i valori che variano in base al progetto distribuito o all'ambiente in cui viene distribuito il progetto.You should define a parameter for those values that will vary based on the project you are deploying or based on the environment you are deploying to. Non definire i parametri per i valori che rimangono invariati.Do not define parameters for values that will always stay the same. Ogni valore di parametro nel modello viene usato per definire le risorse distribuite.Each parameter value is used in the template to define the resources that are deployed.

Durante la definizione dei parametri, usare il campo allowedValues per specificare i valori che l'utente può fornire durante la distribuzione.When defining parameters, use the allowedValues field to specify which values a user can provide during deployment. Usare il campo defaultValue per assegnare un valore al parametro, se non viene specificato alcun valore durante la distribuzione.Use the defaultValue field to assign a value to the parameter, if no value is provided during deployment.

Di seguito è fornita la descrizione di ogni parametro del modello.We will describe each parameter in the template.

siteNamesiteName

Il nome dell'app Web che si desidera creare.The name of the web app that you wish to create.

"siteName":{
  "type":"string"
}

hostingPlanNamehostingPlanName

Il nome del piano di servizio app da usare per l'hosting dell'app Web.The name of the App Service plan to use for hosting the web app.

"hostingPlanName":{
  "type":"string"
}

skusku

Il piano tariffario del piano di hosting.The pricing tier for the hosting plan.

"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."
  }
}

Il modello definisce i valori consentiti per questo parametro e assegna un valore predefinito (S1) se non viene specificato alcun valore.The template defines the values that are permitted for this parameter, and assigns a default value (S1) if no value is specified.

workerSizeworkerSize

Le dimensioni delle istanze del piano di hosting (piccole, medie o grandi dimensioni).The instance size of the hosting plan (small, medium, or large).

"workerSize":{
  "type":"string",
  "allowedValues":[
    "0",
    "1",
    "2"
  ],
  "defaultValue":"0"
}

Il modello definisce i valori consentiti per questo parametro (0, 1 o 2) e assegna un valore predefinito (0) nel caso in cui non viene specificato alcun valore.The template defines the values that are permitted for this parameter (0, 1, or 2), and assigns a default value (0) if no value is specified. I valori corrispondono a piccole, medie e grandi dimensioni.The values correspond to small, medium and large.

cacheSKUNamecacheSKUName

Piano tariffario della nuova Cache Redis di Azure.The pricing tier of the new Azure Redis Cache.

"cacheSKUName": {
  "type": "string",
  "allowedValues": [
    "Basic",
    "Standard"
  ],
  "defaultValue": "Basic",
  "metadata": {
    "description": "The pricing tier of the new Azure Redis Cache."
  }
},

Il modello definisce i valori consentiti per questo parametro (Basic o Standard) e assegna un valore predefinito (Basic) se non viene specificato alcun valore.The template defines the values that are permitted for this parameter (Basic or Standard), and assigns a default value (Basic) if no value is specified. Basic fornisce un singolo nodo con più dimensioni disponibili fino a 53 GB.Basic provides a single node with multiple sizes available up to 53 GB. Standard fornisce due nodi di replica/primario con più dimensioni disponibili fino a 53 GB e contratto di servizio con disponibilità del 99,9%.Standard provides two-node Primary/Replica with multiple sizes available up to 53 GB and 99.9% SLA.

cacheSKUFamilycacheSKUFamily

Famiglia dello SKU.The family for the sku.

"cacheSKUFamily": {
  "type": "string",
  "allowedValues": [
    "C"
  ],
  "defaultValue": "C",
  "metadata": {
    "description": "The family for the sku."
  }
},

cacheSKUCapacitycacheSKUCapacity

Dimensioni dell'istanza della nuova Cache Redis di Azure.The size of the new Azure Redis Cache instance.

"cacheSKUCapacity": {
  "type": "int",
  "allowedValues": [
    0,
    1,
    2,
    3,
    4,
    5,
    6
  ],
  "defaultValue": 0,
  "metadata": {
    "description": "The size of the new Azure Redis Cache instance. "
  }
}

Il modello definisce i valori consentiti per questo parametro (0, 1, 2, 3, 4, 5 o 6) e assegna un valore predefinito (1) se non viene specificato alcun valore.The template defines the values that are permitted for this parameter (0, 1, 2, 3, 4, 5 or 6), and assigns a default value (1) if no value is specified. Questi numeri corrispondono alle dimensioni della cache seguenti: 0 = 250 MB, 1 = 1 GB, 2 = 2,5 GB, 3 = 6 GB, 4 = 13 GB, 5 = 26 GB, 6 = 53 GBThose numbers correspond to following cache sizes: 0 = 250 MB, 1 = 1 GB, 2 = 2.5 GB, 3 = 6 GB, 4 = 13 GB, 5 = 26 GB, 6 = 53 GB

Variabili per i nomiVariables for names

Questo modello si serve di variabili per costruire i nomi delle risorse.This template uses variables to construct names for the resources. Tramite la funzione uniqueString viene creato un valore in base all'ID del gruppo di risorse.It uses the uniqueString function to construct a value based on the resource group id.

"variables": {
  "hostingPlanName": "[concat('hostingplan', uniqueString(resourceGroup().id))]",
  "webSiteName": "[concat('webSite', uniqueString(resourceGroup().id))]",
  "cacheName": "[concat('cache', uniqueString(resourceGroup().id))]"
},

Risorse da distribuireResources to deploy

Piano di servizio appApp Service plan

Consente di creare il piano di servizio per ospitare l'app Web.Creates the service plan for hosting the web app. Fornire il nome del piano tramite il parametro hostingPlanName .You provide the name of the plan through the hostingPlanName parameter. Il percorso del piano è identico a quello usato per il gruppo di risorse.The location of the plan is the same location used for the resource group. Il piano tariffario e le dimensioni dei processi di lavoro sono specificati nei parametri sku e workerSize.The pricing tier and worker size are specified in the sku and workerSize parameters

{
  "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 RedisRedis Cache

Crea la Cache Redis di Azure che viene utilizzata con l'app Web.Creates the Azure Redis Cache that is used with the web app. Il nome della cache è specificato nella variabile cacheName .The name of the cache is specified in the cacheName variable.

Il modello crea la cache nella stessa posizione in cui si trova il gruppo di risorse.The template creates the cache in the same location as the resource group.

{
  "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')]"
    }
  }
}

App WebWeb app

Crea l'app Web con il nome specificato nella variabile webSiteName .Creates the web app with name specified in the webSiteName variable.

Si noti che l'app Web è configurata con proprietà di impostazione dell’app che consentono di utilizzare Cache Redis.Notice that the web app is configured with app setting properties that enable it to work with the Redis Cache. Queste impostazioni app vengono create dinamicamente in base ai valori forniti durante la distribuzione.This app settings are dynamically created based on values provided during deployment.

{
  "apiVersion": "2015-08-01",
  "name": "[variables('webSiteName')]",
  "type": "Microsoft.Web/sites",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Web/serverFarms/', variables('hostingPlanName'))]",
    "[concat('Microsoft.Cache/Redis/', variables('cacheName'))]"
  ],
  "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('cacheName'),'.redis.cache.windows.net,abortConnect=false,ssl=true,password=', listKeys(resourceId('Microsoft.Cache/Redis', variables('cacheName')), '2015-08-01').primaryKey)]"
      }
    }
  ]
}

Comandi per eseguire la distribuzioneCommands to run deployment

Per distribuire le risorse in Azure, è necessario aver eseguito l'accesso all'account Azure e usare il modulo Gestione risorse di Azure.To deploy the resources to Azure, you must be logged in to your Azure account and you must use the Azure Resource Manager module. Per altre informazioni su come usare Gestione risorse di Azure con Azure PowerShell o l'interfaccia della riga di comando di Azure, vedere:To learn about using Azure Resource Manager with either Azure PowerShell or Azure CLI, see:

Gli esempi seguenti presuppongono che nell'account sia già stato creato un gruppo di risorse con il nome specificato.The following examples assume you already have a resource group in your account with the specified name.

PowerShellPowerShell

New-AzureRmResourceGroupDeployment -TemplateUri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/201-web-app-with-redis-cache/azuredeploy.json -ResourceGroupName ExampleDeployGroup

Interfaccia della riga di comando di AzureAzure CLI

azure group deployment create --template-uri https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/201-web-app-with-redis-cache/azuredeploy.json -g ExampleDeployGroup