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:
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
, 1
lub 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:
- Zarządzanie zasobami platformy Azure przy użyciu programu Azure PowerShell
- Zarządzanie zasobami platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
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