Compartir a través de


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

  1. Abra Plantillas de inicio rápido de Azure.

  2. 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.

  3. Seleccione Explorar en GitHub.

  4. Seleccione azuredeploy.json.

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

    Sitio web de inicio rápido de la plantilla de Resource Manager

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.

  1. En Azure Portal, seleccione Grupos de recursos en el menú de la izquierda.
  2. Escriba el nombre del grupo de recursos en el campo de texto Filtro por cualquier campo....
  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.