Ejecución de un contenedor Linux personalizado en Azure App ServiceRun a custom Linux container in Azure App Service

App Service Linux proporciona pilas de aplicaciones predefinidas en Linux con compatibilidad con lenguajes como .NET, PHP, Node.js entre otros.App Service Linux provides pre-defined application stacks on Linux with support for languages such as .NET, PHP, Node.js and others. También puede usar una imagen personalizada de Docker para ejecutar la aplicación web en una pila de aplicaciones aún sin definir en Azure.You can also use a custom Docker image to run your web app on an application stack that is not already defined in Azure. Esta guía de inicio rápido muestra cómo crear una aplicación web e implementar una imagen de GO desde Docker Hub.This quickstart shows how to create a web app and deploy a Go image from Docker Hub. Creará la aplicación web con la CLI de Azure.You create the web app using the Azure CLI.

Aplicación de ejemplo que se ejecuta en Azure

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell le permite usar bash o PowerShell para trabajar con servicios de Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To launch Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Probarlo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Probar no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Launch Cloud Shell.
  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.
  3. Pegue el código en la sesión de Cloud Shell con Ctrl+Mayús+V en Windows y Linux, o Cmd+Mayús+V en macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.
  4. Presione ENTRAR para ejecutar el código.Press Enter to run the code.

Crear un grupo de recursosCreate a resource group

Un grupo de recursos es un contenedor lógico en el que se implementan y administran recursos de Azure como aplicaciones web, bases de datos y cuentas de almacenamiento.A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. Por ejemplo, más adelante puede elegir eliminar todo el grupo de recursos en un solo paso.For example, you can choose to delete the entire resource group in one simple step later.

En Cloud Shell, cree un grupo de recursos con el comando az group create.In the Cloud Shell, create a resource group with the az group create command. En el ejemplo siguiente, se crea un grupo de recursos denominado myResourceGroup en la ubicación Europa Occidental.The following example creates a resource group named myResourceGroup in the West Europe location. Para ver todas las ubicaciones de App Service que se admiten en Linux en el nivel Básico, ejecute el comando az appservice list-locations --sku B1 --linux-workers-enabled.To see all supported locations for App Service on Linux in Basic tier, run the az appservice list-locations --sku B1 --linux-workers-enabled command.

az group create --name myResourceGroup --location "West Europe"

Generalmente se crean el grupo de recursos y los recursos en una región cercana.You generally create your resource group and the resources in a region near you.

Cuando finaliza el comando, una salida de JSON muestra las propiedades del grupo de recursos.When the command finishes, a JSON output shows you the resource group properties.

Crear un plan de Azure App ServiceCreate an Azure App Service plan

En Cloud Shell, cree un plan de App Service en el grupo de recursos con el comando az appservice plan create.In the Cloud Shell, create an App Service plan in the resource group with the az appservice plan create command.

En el ejemplo siguiente se crea un plan de App Service denominado myAppServicePlan en el plan de tarifa Básico (--sku B1) en un contenedor Linux (--is-linux).The following example creates an App Service plan named myAppServicePlan in the Basic pricing tier (--sku B1) and in a Linux container (--is-linux).

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku B1 --is-linux

Cuando se ha creado el plan de App Service, la CLI de Azure muestra información similar al ejemplo siguiente:When the App Service plan has been created, the Azure CLI shows information similar to the following example:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "linux",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Creación de una aplicación webCreate a web app

Cree una aplicación web en el plan de App Service myAppServicePlan con el comando az webapp create.Create a web app in the myAppServicePlan App Service plan with the az webapp create command. No olvide reemplazar <app name> por un nombre de aplicación único global (los caracteres válidos son a-z, 0-9 y -).Don't forget to replace <app name> with a globally unique app name (valid characters are a-z, 0-9, and -).

az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app name> --deployment-container-image-name microsoft/azure-appservices-go-quickstart

En el comando anterior, --deployment-container-image-name apunta a la imagen pública de Docker Hub microsoft/azure-appservices-go-quickstart.In the preceding command, --deployment-container-image-name points to the public Docker Hub image microsoft/azure-appservices-go-quickstart.

Cuando se haya creado la aplicación web, la CLI de Azure mostrará información similar a la del ejemplo siguiente:When the web app has been created, the Azure CLI shows output similar to the following example:

{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app name>.azurewebsites.net",
  "deploymentLocalGitUrl": "https://<username>@<app name>.scm.azurewebsites.net/<app name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

Navegación hasta la aplicaciónBrowse to the app

http://<app_name>.azurewebsites.net/hello

Aplicación de ejemplo que se ejecuta en Azure

¡Enhorabuena!Congratulations! Ya ha implementado una imagen personalizada de Docker que ejecuta una aplicación Go en Web App for Containers.You've deployed a custom Docker image running a Go application to Web App for Containers.

Limpieza de la implementaciónClean up deployment

Después de ejecutar el script de ejemplo, se puede usar el comando siguiente para quitar el grupo de recursos y todos los recursos asociados.After the sample script has been run, the following command can be used to remove the resource group and all resources associated with it.

az group delete --name myResourceGroup

Pasos siguientesNext steps