Tutorial: Uso de las plantillas de inicio rápido de Azure
Plantillas de inicio rápido de Azure es un repositorio de plantillas aportadas por la comunidad. Puede usar las plantillas de ejemplo en el desarrollo de plantillas. En este tutorial, encontrará una definición de recursos de un sitio web y la agregará a su propia plantilla. Se tardan 12 minutos en completar esta instrucción.
Prerrequisitos
Aunque no es obligatorio, se recomienda realizar el tutorial sobre plantillas exportadas.
Debe tener Visual Studio Code con la extensión Herramientas de Resource Manager y Azure PowerShell o la Interfaz de la línea de comandos de Azure (CLI). Para más información, consulte las herramientas de plantilla.
Revisión de la plantilla
Al final del tutorial anterior, la plantilla tenía el siguiente código archivo JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
Esta plantilla funciona para implementar cuentas de almacenamiento y planes de App Service, pero puede que desee agregarle un sitio web. Puede usar plantillas predefinidas para averiguar rápidamente el código JSON necesario para implementar un recurso.
Búsqueda de la plantilla
Seleccione el icono que tenga el título Deploy a basic Linux web app (Implementación de una aplicación web Linux básica). Si tiene problemas para encontrarla, este es el vínculo directo.
Seleccione Explorar en GitHub.
Seleccione azuredeploy.json.
Revise la plantilla. Busque el recurso
Microsoft.Web/sites
.
Revisión de la plantilla existente
Combine la plantilla de inicio rápido con la plantilla existente:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
},
"webAppName": {
"type": "string",
"metadata": {
"description": "Base name of the resource such as web app name and app service plan "
},
"minLength": 2
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "php|7.0",
"metadata": {
"description": "The Runtime stack of current web app"
}
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
"webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2021-03-01",
"name": "[variables('webAppPortalName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
],
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
El nombre de la aplicación web debe ser único en Azure. Para evitar tener nombres duplicados, la variable webAppPortalName
se actualiza de "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]"
a "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
.
Agregue una coma al final de la definición de Microsoft.Web/serverfarms
para separar la definición de recursos de la definición de Microsoft.Web/sites
.
Hay un par de características importantes que se deben tener en cuenta en este nuevo recurso.
Tiene un elemento llamado dependsOn
que se establece en el plan de App Service. Esta configuración es necesaria porque el plan de App Service debe existir antes de que se cree la aplicación web. El elemento dependsOn
indica a Resource Manager cómo ordenar los recursos para la implementación.
La propiedad serverFarmId
usa la función resourceId. Esta función obtiene el identificador único de un recurso. En este caso, obtiene el identificador único del plan de App Service. La aplicación web está asociada a un plan de App Service específico.
Implementar plantilla
Use la CLI de Azure o Azure PowerShell para implementar una plantilla.
Si no ha creado el grupo de recursos, consulte Creación del grupo de recursos. En el ejemplo se supone que ha establecido la variable templateFile en la ruta de acceso al archivo de plantilla, como se muestra en el primer tutorial.
New-AzResourceGroupDeployment `
-Name addwebapp `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS `
-webAppName demoapp
Nota
Si se produjo un error en la implementación, use el modificador verbose
para obtener información sobre los recursos que se están creando. Utilice el modificador debug
para más información sobre la depuración.
Limpieza de recursos
Si va a pasar al siguiente tutorial, no es necesario que elimine el grupo de recursos.
Si va a terminar ya, puede eliminar el grupo de recursos.
- En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
- Escriba el nombre del grupo de recursos en el campo de texto Filtro por cualquier campo....
- Active la casilla situada junto a myResourceGroup y seleccione myResourceGroup o el nombre del grupo de recursos.
- Seleccione Eliminar grupo de recursos del menú superior.
Pasos siguientes
Ha aprendido a usar una plantilla de inicio rápido para el desarrollo de plantillas. En el siguiente tutorial, agregará etiquetas a los recursos.