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 . Este botón abre la plantilla de ARM en 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 . Este botón abre la plantilla de ARM en 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 . Este botón abre la plantilla de ARM en 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:
- Microsoft.Web/serverfarms: permite crear un plan de App Service.
- Microsoft.Web/sites: permite crear una aplicación de App Service.
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:
- Microsoft.Web/serverfarms: permite crear un plan de App Service.
- Microsoft.Web/sites: permite crear una aplicación de App Service.
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:
- Microsoft.Web/serverfarms: permite crear un plan de App Service.
- Microsoft.Web/sites: permite crear una aplicación de App Service.
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"
Nota:
Puede encontrar aquí más ejemplos de plantillas de Azure App Service.
Validación de la implementación
Vaya a http://<app_name>.azurewebsites.net/
y compruebe que se ha creado.
Limpieza de recursos
Cuando ya no necesite, elimine el grupo de recursos.
Pasos siguientes
Python con Postgres