Compartir a través de


Tutorial: Uso de 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 del sitio web y la agregará a su propia plantilla. Esta instrucción tarda 12 minutos en completarse.

Prerrequisitos

Se recomienda completar el tutorial sobre las plantillas exportadas, pero no es necesario.

Debe tener Visual Studio Code y Azure PowerShell o la CLI de Azure. Para obtener más información, consulte herramientas de plantilla.

Revisar plantilla

Al final del tutorial anterior, la plantilla tenía el siguiente 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": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-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 es posible que quiera agregarle un sitio web. Puede usar plantillas precompiladas para detectar rápidamente el JSON necesario para implementar un recurso.

Buscar plantilla

  1. Abrir Plantillas de inicio rápido de Azure

  2. Seleccione el icono con el título Implementación de una aplicación web básica de Linux. Si tiene problemas para encontrarlo, este es el vínculo directo.

  3. Seleccione Examinar en GitHub.

  4. Seleccione azuredeploy.json.

  5. Revise la plantilla. Busque el recurso Microsoft.Web/sites.

    Sitio web de inicio rápido de plantillas del Administrador de Recursos

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": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-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": "2025-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 webAppPortalName variable se actualiza de "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]" a "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]".

Agregue una coma al final de la Microsoft.Web/serverfarms definición para separar la definición de recurso de la Microsoft.Web/sites definición.

Hay un par de características importantes que debe tener en cuenta en este nuevo recurso.

Tiene un elemento denominado dependsOn que se establece en el plan de Servicio de Aplicaciones. Esta configuración es necesaria porque el plan de App Service debe existir antes de crear la aplicación web. El dependsOn elemento indica a Resource Manager cómo ordenar los recursos para la implementación.

La serverFarmId propiedad 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 servicio de aplicaciones. 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 de un 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. Use el modificador debug para obtener más información para la depuración.

Limpieza de recursos

Si va a pasar al siguiente tutorial, no es necesario eliminar el grupo de recursos.

Si va a terminar ya, puede eliminar el grupo de recursos.

  1. En Azure Portal, seleccione Grupos de recursos en el menú izquierdo.
  2. Escriba el nombre del grupo de recursos en el campo Filtro para cualquier campo... de texto.
  3. Active la casilla situada junto a myResourceGroup y seleccione myResourceGroup o el nombre del grupo de recursos.
  4. 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.