Inicio rápido: Creación de una aplicación de App Service mediante una plantilla de ARM

Comience a usar Azure App Service mediante la implementación de una aplicación en la nube con una plantilla de Azure Resource Manager (ARM) y la CLI de Azure en Cloud Shell. Una plantilla de Resource Manager es un archivo JSON (notación de objetos JavaScript) que define tanto la infraestructura como la configuración de un proyecto. Completar este inicio rápido no supone ningún coste porque usa un nivel de App Service gratuito.

Para completar este inicio rápido, necesitará una cuenta de Azure con una suscripción activa. Si no tiene una cuenta de Azure, puede crearla gratis.

Ir al final

Si está familiarizado con el uso de plantillas de ARM, puede ir directamente al final seleccionando el botón Button to deploy the Resource Manager template to Azure.. Este botón abre la plantilla de ARM en Azure Portal.

Screenshot of the ARM Template in the Azure portal.

En Azure Portal, seleccione Crear nuevo para crear un nuevo grupo de recursos y, a continuación, seleccione el botón Revisar y crear para implementar la aplicación.

Comience a usar Azure App Service mediante la implementación de una aplicación en la nube con una plantilla de Azure Resource Manager (ARM) y la CLI de Azure en Cloud Shell. Una plantilla de Resource Manager es un archivo JSON (notación de objetos JavaScript) que define tanto la infraestructura como la configuración de un proyecto. Completar este inicio rápido no supone ningún coste porque usa un nivel de App Service gratuito.

Para completar este inicio rápido, necesitará una cuenta de Azure con una suscripción activa. Si no tiene una cuenta de Azure, puede crearla gratis.

Ir al final

Si está familiarizado con el uso de plantillas de ARM, puede ir directamente al final seleccionando el botón Button to deploy the Resource Manager template to Azure.. Este botón abre la plantilla de ARM en Azure Portal.

Screenshot of the ARM Template in the Azure portal.

En Azure Portal, seleccione Crear nuevo para crear un nuevo grupo de recursos y, a continuación, seleccione el botón Revisar y crear para implementar la aplicación.

Comience a usar Azure App Service mediante la implementación de una aplicación en la nube con una plantilla de Azure Resource Manager (ARM) y la CLI de Azure en Cloud Shell. Una plantilla de Resource Manager es un archivo JSON (notación de objetos JavaScript) que define tanto la infraestructura como la configuración de un proyecto. Se necesita un plan premium para implementar una aplicación de contenedor de Windows. Consulte la página precios de App Service para obtener más información sobre los precios.

Ir al final

Si está familiarizado con el uso de plantillas de ARM, puede ir directamente al final seleccionando el botón Button to deploy the Resource Manager template to Azure.. Este botón abre la plantilla de ARM en Azure Portal.

Screenshot of the ARM Template in the Azure portal.

En Azure Portal, seleccione Crear nuevo para crear un nuevo grupo de recursos y, a continuación, seleccione el botón Revisar y crear para implementar la aplicación.

Revisión de la plantilla

La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure. Implementa un plan y una aplicación de App Service en Windows. Es compatible con las aplicaciones de .NET Core, .NET Framework, PHP, Node.js y HTML estático. Para Java, consulte Creación de aplicaciones Java.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "16144177164140676603"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "language": {
      "type": "string",
      "defaultValue": ".net",
      "allowedValues": [
        ".net",
        "php",
        "node",
        "html"
      ],
      "metadata": {
        "description": "The language stack of the app."
      }
    },
    "helloWorld": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "true = deploy a sample Hello World app."
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]",
    "gitRepoReference": {
      ".net": "https://github.com/Azure-Samples/app-service-web-dotnet-get-started",
      "node": "https://github.com/Azure-Samples/nodejs-docs-hello-world",
      "php": "https://github.com/Azure-Samples/php-docs-hello-world",
      "html": "https://github.com/Azure-Samples/html-docs-hello-world"
    },
    "gitRepoUrl": "[if(bool(parameters('helloWorld')), variables('gitRepoReference')[toLower(parameters('language'))], parameters('repoUrl'))]",
    "configReference": {
      ".net": {
        "comments": ".Net app. No additional configuration needed."
      },
      "html": {
        "comments": "HTML app. No additional configuration needed."
      },
      "php": {
        "phpVersion": "7.4"
      },
      "node": {
        "appSettings": [
          {
            "name": "WEBSITE_NODE_DEFAULT_VERSION",
            "value": "12.15.0"
          }
        ]
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[variables('appServicePlanPortalName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('sku')]"
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('webAppName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "siteConfig": "[variables('configReference')[parameters('language')]]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "httpsOnly": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(variables('gitRepoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[variables('gitRepoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

En la plantilla se definen dos recursos de Azure:

Esta plantilla contiene varios parámetros que están predefinidos para su comodidad. Consulte la tabla para ver los valores predeterminados de los parámetros y sus descripciones:

Parámetros Tipo Valor predeterminado Descripción
webAppName string webApp-<uniqueString> Nombre de la aplicación basado en un valor de cadena único
appServicePlanName string webAppPlan-<uniqueString> Nombre del plan de App Service basado en un valor de cadena único
ubicación string [resourceGroup().location] Región de la aplicación
sku string F1 Tamaño de la instancia (F1 = nivel Gratis)
language string .NET Pila de lenguajes de programación (.NET, php, node, html)
helloWorld boolean False True = implementa la aplicación "Hola mundo"
repoUrl string Repositorio de Git externo (opcional)

La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure. Implementa un plan y una aplicación de App Service en Linux. Es compatible con todos los lenguajes de programación que se admiten en App Service.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "10602523904429381366"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "DOTNETCORE|3.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": " ",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-02-01",
      "name": "[variables('appServicePlanPortalName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('sku')]"
      },
      "kind": "linux",
      "properties": {
        "reserved": true
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2021-02-01",
      "name": "[parameters('webAppName')]",
      "location": "[parameters('location')]",
      "properties": {
        "httpsOnly": true,
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]",
          "minTlsVersion": "1.2",
          "ftpsState": "FtpsOnly"
        }
      },
      "identity": {
        "type": "SystemAssigned"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(parameters('repoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[parameters('repoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

En la plantilla se definen dos recursos de Azure:

Esta plantilla contiene varios parámetros que están predefinidos para su comodidad. Consulte la tabla para ver los valores predeterminados de los parámetros y sus descripciones:

Parámetros Tipo Valor predeterminado Descripción
webAppName string webApp-<uniqueString> Nombre de la aplicación basado en un valor de cadena único
appServicePlanName string webAppPlan-<uniqueString> Nombre del plan de App Service basado en un valor de cadena único
ubicación string [resourceGroup().location] Región de la aplicación
sku string F1 Tamaño de la instancia (F1 = nivel Gratis)
linuxFxVersion string DOTNETCORE|3.0 "Pila de lenguajes de programación | Versión"
repoUrl string Repositorio de Git externo (opcional)

La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure. Implementa un plan y una aplicación de App Service en un contenedor de Windows.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "10193476814580854111"
    }
  },
  "parameters": {
    "appServiceWebAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web App name."
      }
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "App Service Plan name."
      }
    },
    "skuTier": {
      "type": "string",
      "defaultValue": "P1v3"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServiceWebAppName')]",
      "location": "[parameters('location')]",
      "tags": {
        "[format('hidden-related:{0}', resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName')))]": "empty"
      },
      "properties": {
        "siteConfig": {
          "appSettings": [
            {
              "name": "PORT",
              "value": "8080"
            }
          ],
          "appCommandLine": "",
          "windowsFxVersion": "DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp"
        },
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ]
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuTier')]"
      },
      "kind": "windows",
      "properties": {
        "hyperV": true
      }
    }
  ]
}

En la plantilla se definen dos recursos de Azure:

Esta plantilla contiene varios parámetros que están predefinidos para su comodidad. Consulte la tabla para ver los valores predeterminados de los parámetros y sus descripciones:

Parámetros Tipo Valor predeterminado Descripción
webAppName string webApp-<uniqueString> Nombre de la aplicación basado en un valor de cadena único
appServicePlanName string webAppPlan-<uniqueString> Nombre del plan de App Service basado en un valor de cadena único
ubicación string [resourceGroup().location] Región de la aplicación
skuTier string P1v3 Tamaño de instancia (Ver SKU disponibles)
appSettings string [{"name": "PORT","value": "8080"}] Puerto de escucha de App Service. Debe ser 8080.
kind string windows Sistema operativo
hyperv string true Modo de aislamiento
windowsFxVersion string DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Imagen de contenedor

Implementación de la plantilla

Aquí se usa la CLI de Azure para implementar la plantilla. También puede usar Azure Portal, Azure PowerShell y la API REST. Para obtener información sobre otros métodos de implementación, consulte Implementación de plantillas.

El siguiente código crea un grupo de recursos, un plan de App Service y una aplicación web. Se han establecido un grupo de recursos, un plan de App Service y una ubicación predeterminados. Reemplace <app-name> por un nombre de aplicación único global (los caracteres válidos son a-z, 0-9 y -).

Ejecute los siguientes comandos para implementar una aplicación de .NET Framework en Windows.

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters language=".NET" helloWorld="true" webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows/azuredeploy.json"

Ejecute los comandos siguientes para crear una aplicación de Python en Linux:

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup --parameters webAppName="<app-name>" linuxFxVersion="PYTHON|3.9" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-linux/azuredeploy.json"

Para implementar una pila de lenguajes diferente, actualice linuxFxVersion con los valores adecuados. En la tabla se muestran ejemplos. Para mostrar las versiones actuales, ejecute el siguiente comando en Cloud Shell: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Idioma Ejemplo:
.NET linuxFxVersion="DOTNETCORE|3.0"
PHP linuxFxVersion="PHP|7.4"
Node.js linuxFxVersion="NODE|10.15"
Java linuxFxVersion="JAVA|1.8 |TOMCAT|9.0"
Python linuxFxVersion="PYTHON|3.7"

Ejecute los comandos siguientes para implementar una aplicación .NET en un contenedor de Windows.

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows-container/azuredeploy.json"

Validación de la implementación

Vaya a http://<app_name>.azurewebsites.net/ y compruebe que se ha creado.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Limpieza de recursos

Cuando ya no necesite, elimine el grupo de recursos.

Pasos siguientes

 Python con Postgres