Vytvoření webové aplikace a Azure Cache for Redis pomocí šablony

V tomto článku se dozvíte, jak vytvořit šablonu Azure Resource Manageru, která nasadí webovou aplikaci Azure se službou Azure Cache for Redis. Dozvíte se následující podrobnosti o nasazení:

  • Jak definovat, které prostředky se nasazují
  • Definování parametrů zadaných při spuštění nasazení

Tuto šablonu můžete použít pro vlastní nasazení nebo ji upravit, aby splňovala vaše požadavky.

Další informace o vytváření šablon najdete v tématu Tvorba šablon Azure Resource Manageru. Další informace o syntaxi JSON a vlastnostech pro typy prostředků mezipaměti najdete v tématu Typy prostředků Microsoft.Cache.

Kompletní šablonu najdete v tématu Webová aplikace se šablonou Azure Cache for Redis.

Co nasadíte

V této šabloně nasadíte:

  • Webová aplikace Azure
  • Azure Cache for Redis

Pokud chcete nasazení spustit automaticky, vyberte následující tlačítko:

Deploy to Azure

Parametry, které se mají zadat

Pomocí Azure Resource Manageru definujete parametry pro hodnoty, které chcete zadat při nasazení šablony. Šablona obsahuje oddíl s názvem Parametry, který obsahuje všechny hodnoty parametrů. Měli byste definovat parametr pro tyto hodnoty, které se liší v závislosti na projektu, který nasazujete, nebo prostředí, do kterého nasazujete. Nedefinujte parametry pro hodnoty, které jsou konstantní. Každá hodnota parametru se v šabloně použije k definování nasazovaných prostředků.

Při definování parametrů použijte pole allowedValues k určení hodnot, které uživatel může poskytnout během nasazení. Pokud během nasazování není k dispozici žádná hodnota, použijte pole defaultValue k přiřazení hodnoty k parametru.

Jednotlivé parametry v šabloně popíšeme.

Sitename

Název webové aplikace, kterou chcete vytvořit.

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

hostingPlanName

Název plánu služby App Service, který se má použít k hostování webové aplikace.

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

sku

Cenová úroveň pro plán hostování.

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

Šablona definuje hodnoty, které jsou pro tento parametr povoleny, a přiřadí výchozí hodnotu, pokud není zadána žádná hodnota S1 .

workerSize

Velikost instance plánu hostování (malý, střední nebo velký).

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

Šablona definuje hodnoty, které jsou pro tento parametr povoleny (01, nebo2) a přiřadí výchozí hodnotu, pokud není zadána žádná hodnota0. Hodnoty odpovídají malým, středním a velkým hodnotám.

cacheSKUName

Cenová úroveň nové služby Azure Cache for Redis.

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

Šablona definuje hodnoty povolené pro tento parametr (Basic, Standard nebo Premium) a přiřazuje výchozí hodnotu (Basic), pokud není zadána žádná hodnota. Basic poskytuje jeden uzel s více velikostmi dostupnými až 53 GB. Standard poskytuje primární/repliku se dvěma uzly s více velikostmi dostupnými až 53 GB a smlouvou SLA o velikosti 99,9 %.

cacheSKUFamily

Rodina pro skladovou položku.

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

cacheSKUCapacity

Velikost nové instance Azure Cache for Redis.

Pro rodiny Basic a 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. "
      }
    }

Kapacita mezipaměti s hodnotou Premium je definována stejně, s výjimkou povolených hodnot spuštěných od 1 do 5 místo od 0 do 6.

Šablona definuje celočíselné hodnoty, které jsou pro tento parametr povoleny (0 až 6 pro rodiny Basic a Standard; 1 až 5 pro řadu Premium). Pokud není zadána žádná hodnota, šablona přiřadí výchozí hodnotu 0 pro Basic a Standard 1 pro Premium.

Hodnoty odpovídají následujícím velikostem mezipaměti:

Hodnota Basic a Standard
velikost mezipaměti
Premium
velikost mezipaměti
0 250 MB (výchozí) Není k dispozici
0 1 GB 6 GB (výchozí)
2 2.5 GB 13 GB
3 6 GB 26 GB
4 13 GB 53 GB
5 26 GB 120 GB
6 53 GB Není k dispozici

Proměnné pro názvy

Tato šablona používá proměnné k vytvoření názvů prostředků. Používá funkci uniqueString k vytvoření hodnoty na základě ID skupiny prostředků.

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

Prostředky k nasazení

Plán služby App Service

Vytvoří plán služby pro hostování webové aplikace. Název plánu zadáte prostřednictvím parametru hostingPlanName . Umístění plánu je stejné umístění, které se používá pro skupinu prostředků. Cenová úroveň a velikost pracovního procesu se zadají v parametrech skladové položky a 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')]"
  }
},

Azure Cache for Redis

Vytvoří Azure Cache for Redis, který se používá s webovou aplikací. Název mezipaměti se zadává v proměnné cacheName .

Šablona vytvoří mezipaměť ve stejném umístění jako skupina prostředků.

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

Webová aplikace (Azure Cache for Redis)

Vytvoří webovou aplikaci s názvem zadaným v proměnné webSiteName .

Všimněte si, že webová aplikace je nakonfigurovaná s vlastnostmi nastavení aplikace, které jí umožňují pracovat se službou Azure Cache for Redis. Tato nastavení aplikace se dynamicky vytvářejí na základě hodnot zadaných během nasazování.

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

Webová aplikace (RedisEnterprise)

Pro RedisEnterprise, protože typy prostředků jsou mírně odlišné, způsob, jak provést listKeys , je odlišný:

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

Příkazy pro spuštění nasazení

Pokud chcete nasadit prostředky do Azure, musíte být přihlášení k účtu Azure a používat modul Azure Resource Manager. Další informace o použití Azure Resource Manageru s Azure PowerShellem nebo Azure CLI najdete v tématech:

Následující příklady předpokládají, že v účtu již máte skupinu prostředků s daným názvem.

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