Erstellen einer Web-App und eines Azure Cache for Redis mithilfe einer Vorlage
Hinweis
Es wird empfohlen, das Azure Az PowerShell-Modul für die Interaktion mit Azure zu verwenden. Informationen zu den ersten Schritten finden Sie unter Installieren des Azure Az PowerShell-Moduls. Informationen zum Migrieren zum Az PowerShell-Modul finden Sie unter Migrieren von Azure PowerShell von AzureRM zum Az-Modul.
In diesem Artikel erfahren Sie, wie Sie eine Azure Resource Manager-Vorlage erstellen, die eine Azure Web-App mit einem Azure Cache for Redis bereitstellt. Sie lernen die folgenden Bereitstellungsdetails kennen:
- Definieren der bereitzustellenden Ressourcen
- Definieren von Parametern, die angegeben werden, wenn die Bereitstellung ausgeführt wird
Sie können diese Vorlage für Ihre eigenen Bereitstellungen verwenden oder an Ihre Anforderungen anpassen.
Weitere Informationen zum Erstellen von Vorlagen finden Sie unter Erstellen von Azure Resource Manager-Vorlagen. Weitere Informationen zur JSON-Syntax und den Eigenschaften für Cacheressourcentypen finden Sie unter Microsoft.Cache resource types (Microsoft.Cache-Ressourcentypen).
Die vollständige Vorlage finden Sie unter Web-App mit Azure Cache for Redis-Vorlage.
Was Sie bereitstellen
In dieser Vorlage stellen Sie Folgendes bereit:
- Azure-Web-App
- Azure Cache for Redis
Wählen Sie die folgende Schaltfläche, um die Bereitstellung automatisch auszuführen:
Anzugebende Parameter
Mit Azure Resource Manager definieren Sie die Parameter für Werte, die Sie bei der Bereitstellung der Vorlage angeben möchten. Die Vorlage enthält einen Abschnitt namens "Parameters", der alle Parameterwerte enthält. Sie sollten einen Parameter für die Werte definieren, die basierend auf dem bereitgestellten Projekt oder der bereitgestellten Umgebung variieren. Definieren Sie keine Parameter für Werte, die konstant sind. Jeder Parameterwert wird in der Vorlage verwendet, um die bereitgestellten Ressourcen zu definieren.
Verwenden Sie beim Definieren von Parametern das Feld allowedValues , um anzugeben, welche Werte ein Benutzer während der Bereitstellung angeben kann. Verwenden Sie das Feld defaultValue , um dem Parameter einen Wert zuweisen, wenn kein Wert während der Bereitstellung angegeben wird.
Nachfolgend wird jeder der in der Vorlage verwendeten Parameter beschrieben.
siteName
Der Name der Web-App, die Sie erstellen möchten.
"siteName":{
"type":"string"
}
hostingPlanName
Der Name des App Service-Plans zum Hosten der Web-App.
"hostingPlanName":{
"type":"string"
}
sku
Der Tarif für den Hostingplan.
"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."
}
}
Die Vorlage definiert die Werte, die für diesen Parameter zulässig sind, und weist einen Standardwert von S1
zu, wenn kein Wert angegeben wird.
workerSize
Die Instanzgröße des Hostingplans (klein, mittel oder groß).
"workerSize":{
"type":"string",
"allowedValues":[
"0",
"1",
"2"
],
"defaultValue":"0"
}
Die Vorlage definiert die Werte, die für diesen Parameter zulässig sind(0
, 1
oder 2
), und weist einen Standardwert von 0
zu, wenn kein Wert angegeben wird. Die Werte entsprechen klein, mittel und groß.
cacheSKUName
Der Tarif der neuen Azure Cache for Redis-Instanz.
"cacheSKUName": {
"type": "string",
"allowedValues": [
"Basic",
"Standard",
"Premium"
],
"defaultValue": "Basic",
"metadata": {
"description": "The pricing tier of the new Azure Cache for Redis."
}
},
Die Vorlage definiert die Werte, die für diesen Parameter zulässig sind (Basic, Standard oder Premium), und weist einen Standardwert (Basic) zu, wenn kein Wert angegeben wird. "Basic" bietet einen einzelnen Knoten mit mehreren Größen bis zu 53 GB. "Standard" bietet zwei Knoten, Primär/Replikat, mit mehreren Größen bis zu 53 GB und 99,9% SLA.
cacheSKUFamily
Die SKU-Familie.
"cacheSKUFamily": {
"type": "string",
"allowedValue/s": [
"C",
"P"
],
"defaultValue": "C",
"metadata": {
"description": "The family for the sku."
}
},
cacheSKUCapacity
Die Größe der neuen Azure Cache for Redis-Instanz.
Für die Basic- und Standard-Familien:
"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. "
}
}
Die Cachekapazität des Premium-Werts ist gleich definiert, außer dass die zulässigen Werte von 1 bis 5 statt von 0 bis 6 reichen.
Die Vorlage definiert die ganzzahligen Werte, die für diesen Parameter zulässig sind (0 bis 6 für die Basic- und Standard-Familie; 1 bis 5 für die Premium-Familie). Wenn kein Wert angegeben ist, weist die Vorlage einen Standardwert von 0 für Basic und Standard, 1 für Premium zu.
Diese Werte entsprechen den folgenden Cachegrößen:
Wert | Basic und Standard. Cachegröße |
Premium Cachegröße |
---|---|---|
0 | 250 MB (Standard) | – |
1 | 1 GB | 6 GB (Standard) |
2 | 2,5 GB | 13 GB |
3 | 6 GB | 26 GB |
4 | 13 GB | 53 GB |
5 | 26 GB | 120 GB |
6 | 53 GB | Nicht zutreffend |
Variablen für Namen
Diese Vorlage verwendet Variablen für die Erstellung von Namen für die Ressourcen. Sie nutzt die uniqueString -Funktion, um einen Wert basierend auf der Ressourcengruppen-ID zu erstellen.
"variables": {
"hostingPlanName": "[concat('hostingplan', uniqueString(resourceGroup().id))]",
"webSiteName": "[concat('webSite', uniqueString(resourceGroup().id))]",
"cacheName": "[concat('cache', uniqueString(resourceGroup().id))]"
},
Bereitzustellende Ressourcen
App Service-Plan
Erstellt den Dienstplan zum Hosten der Web-App. Geben Sie den Namen des Plans über den hostingPlanName -Parameter an. Der Speicherort des Plans ist mit demjenigen für die Ressourcengruppe identisch. Der Tarif und die Workergröße werden in den Parametern sku und workerSize angegeben.
{
"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
Erstellt den Azure Cache for Redis, der mit der Web-App verwendet werden soll. Der Name des Cache wird in der cacheName -Variablen angegeben.
Die Vorlage erstellt den Cache am gleichen Speicherort wie die Ressourcengruppe.
{
"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')]"
}
}
}
Web-App (Azure Cache for Redis)
Erstellt die Web-App mit dem Namen, der in der webSiteName -Variablen angegeben ist.
Beachten Sie, dass die Web-App mit App-Einstellungseigenschaften konfiguriert ist, die es der App ermöglichen, den Azure Cache for Redis zu verwenden. Diese App-Einstellungen werden dynamisch anhand der Werte erstellt, die während der Bereitstellung angegeben wurden.
{
"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)]"
}
}
]
}
Web-App (RedisEnterprise)
Da sich für RedisEnterprise die Ressourcentypen geringfügig unterscheiden, unterscheidet sich die Vorgehensweise für listKeys:
{
"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)]"
}
}
]
}
Befehle zum Ausführen der Bereitstellung
Um die Ressourcen in Azure bereitzustellen, müssen Sie bei Ihrem Azure-Konto angemeldet sein und das Azure Resource Manager-Modul verwenden. Informationen zum Verwenden des Azure-Ressourcen-Managers mit Azure PowerShell oder der Azure-Befehlszeilenschnittstelle finden Sie hier:
- Verwalten von Azure-Ressourcen mithilfe von Azure PowerShell
- Verwalten von Azure-Ressourcen mithilfe der Azure-Befehlszeilenschnittstelle
Bei den folgenden Beispielen wird davon ausgegangen, dass Sie in Ihrem Konto bereits über eine Ressourcengruppe mit dem angegebenen Namen verfügen.
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