Tworzenie aplikacji internetowej i usługi Azure Cache for Redis przy użyciu szablonu

Z tego artykułu dowiesz się, jak utworzyć szablon usługi Azure Resource Manager, który wdraża aplikację internetową platformy Azure za pomocą usługi Azure Cache for Redis. Poznasz następujące szczegóły wdrożenia:

  • Jak zdefiniować, które zasoby są wdrażane
  • Jak zdefiniować parametry określone podczas wykonywania wdrożenia

Można użyć tego szablonu na potrzeby własnych wdrożeń lub dostosować go do konkretnych potrzeb.

Aby uzyskać więcej informacji na temat tworzenia szablonów, zobacz Tworzenie szablonów usługi Azure Resource Manager. Aby dowiedzieć się więcej o składni i właściwościach JSON dla typów zasobów pamięci podręcznej, zobacz Typy zasobów Microsoft.Cache.

Pełny szablon można znaleźć w temacie Web App with Azure Cache for Redis template (Aplikacja internetowa z usługą Azure Cache for Redis).

Co wdrożysz

W tym szablonie wdrożysz:

  • Aplikacja internetowa platformy Azure
  • Azure Cache for Redis

Aby automatycznie uruchomić wdrożenie, wybierz następujący przycisk:

Deploy to Azure

Parametry do określenia

Przy użyciu usługi Azure Resource Manager można zdefiniować parametry dla wartości, które mają zostać uwzględnione podczas wdrażania szablonu. Szablon zawiera sekcję o nazwie Parametry, która zawiera wszystkie wartości parametrów. Należy zdefiniować parametr dla tych wartości, które różnią się w zależności od wdrażanego projektu lub wdrażanego środowiska. Nie należy definiować parametrów dla wartości, które są stałe. Każda wartość parametru używana w szablonie definiuje wdrażane zasoby.

Podczas definiowania parametrów użyj pola allowedValues , aby określić wartości, które użytkownik może podać podczas wdrażania. Użyj pola defaultValue, aby przypisać wartość do parametru, jeśli podczas wdrażania nie podano żadnej wartości.

Opiszemy każdy parametr w szablonie.

Sitename

Nazwa aplikacji internetowej, którą chcesz utworzyć.

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

hostingPlanName

Nazwa planu usługi App Service do użycia do hostowania aplikacji internetowej.

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

sku

Warstwa cenowa planu hostingu.

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

Szablon definiuje wartości, które są dozwolone dla tego parametru, i przypisuje wartość domyślną, S1 jeśli nie określono żadnej wartości.

workerSize

Rozmiar wystąpienia planu hostingu (mały, średni lub duży).

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

Szablon definiuje wartości, które są dozwolone dla tego parametru (0, 1lub 2) i przypisuje wartość domyślną, 0 jeśli nie określono żadnej wartości. Wartości odpowiadają małym, średnim i dużym.

cacheSKUName

Warstwa cenowa nowej pamięci podręcznej 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."
      }
    },

Szablon definiuje wartości, które są dozwolone dla tego parametru (Podstawowa, Standardowa lub Premium) i przypisuje wartość domyślną (Podstawowa), jeśli nie określono żadnej wartości. Podstawowa zapewnia jeden węzeł o wielu rozmiarach dostępnych do 53 GB. Standard zapewnia dwuwężną główną/replikę z wieloma rozmiarami dostępnymi do 53 GB i 99,9% umowy SLA.

cacheSKUFamily

Rodzina dla jednostki SKU.

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

cacheSKUCapacity

Rozmiar nowego wystąpienia usługi Azure Cache for Redis.

Dla rodzin Podstawowa i Standardowa:

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

Pojemność pamięci podręcznej wartości Premium jest taka sama, z wyjątkiem dozwolonych wartości uruchamianych z zakresu od 1 do 5 zamiast od 0 do 6.

Szablon definiuje wartości całkowite dozwolone dla tego parametru (od 0 do 6 dla rodzin Podstawowa i Standardowa; od 1 do 5 dla rodziny Premium). Jeśli żadna wartość nie zostanie określona, szablon przypisuje wartość domyślną 0 dla warstwy Podstawowa i Standardowa, 1 dla warstwy Premium.

Wartości odpowiadają następującym rozmiarom pamięci podręcznej:

Wartość Podstawowa i Standardowa
rozmiar pamięci podręcznej
Premium
rozmiar pamięci podręcznej
0 250 MB (ustawienie domyślne) nie dotyczy
1 1 GB 6 GB (ustawienie domyślne)
2 2.5 GB 13 GB
3 6 GB 26 GB
100 13 GB 53 GB
5 26 GB 120 GB
6 53 GB nie dotyczy

Zmienne nazw

Ten szablon używa zmiennych do konstruowania nazw zasobów. Używa funkcji uniqueString do konstruowania wartości na podstawie identyfikatora grupy zasobów.

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

Zasoby wymagające wdrożenia

Plan usługi App Service

Tworzy plan usługi do hostowania aplikacji internetowej. Nazwę planu należy podać za pomocą parametru hostingPlanName . Lokalizacja planu jest tą samą lokalizacją używaną dla grupy zasobów. Warstwa cenowa i rozmiar procesu roboczego są określone w parametrach sku i 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

Tworzy usługę Azure Cache for Redis używaną z aplikacją internetową. Nazwa pamięci podręcznej jest określona w zmiennej cacheName .

Szablon tworzy pamięć podręczną w tej samej lokalizacji co grupa zasobów.

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

Aplikacja internetowa (Azure Cache for Redis)

Tworzy aplikację internetową o nazwie określonej w zmiennej webSiteName .

Zwróć uwagę, że aplikacja internetowa jest skonfigurowana z właściwościami ustawień aplikacji, które umożliwiają jej pracę z usługą Azure Cache for Redis. Te ustawienia aplikacji są tworzone dynamicznie na podstawie wartości podanych podczas wdrażania.

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

Aplikacja internetowa (RedisEnterprise)

W przypadku grupy RedisEnterprise, ponieważ typy zasobów są nieco inne, sposób wykonywania listKeys jest inny:

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

Polecenia umożliwiające uruchomienie wdrożenia

Aby wdrożyć zasoby na platformie Azure, musisz wcześniej zalogować się na swoje konto Azure i korzystać z modułu Azure Resource Manager. Aby dowiedzieć się, jak używać usługi Azure Resource Manager z programem Azure PowerShell lub interfejsem wiersza polecenia platformy Azure, zobacz:

W następujących przykładach założono, że na swoim koncie masz już grupę zasobów o określonej nazwie.

Program 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

Interfejs wiersza polecenia platformy 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