Share via


Implementación de una aplicación web go en Azure Container Apps

En este inicio rápido, aprenderá a implementar una aplicación web go en contenedor en Azure Container Apps.

Azure Container Apps le permite ejecutar código de aplicación empaquetado en cualquier contenedor sin tener que administrar compleja infraestructura en la nube o orquestadores complejos de contenedores, y sin preocuparse por el entorno de ejecución o el modelo de programación. Entre los usos comunes de Azure Container Apps se incluyen: Implementar puntos de conexión de API, hospedar aplicaciones de procesamiento en segundo plano, controlar el procesamiento controlado por eventos y ejecutar microservicios.

Siga este tutorial para recorrer la creación de una imagen de Docker, la implementación de esa imagen en Azure Container Registry e la implementación de una aplicación web go en Azure Container Apps.

Requisitos previos

  • Suscripción de Azure: si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Descarga de la aplicación de ejemplo

Para seguir este tutorial, necesitará una aplicación de ejemplo para incluir en contenedores. En el repositorio de GitHub msdocs-go-webapp-quickstart se proporciona una aplicación web de ejemplo. Descargue o clone la aplicación de ejemplo en la estación de trabajo local.

git clone https://github.com/Azure-Samples/msdocs-go-webapp-quickstart.git

cd msdocs-go-webapp-quickstart

Creación de una instancia de Azure Container Registry

Azure Container Registry permite compilar, almacenar y administrar imágenes de contenedor. Lo usará para almacenar la imagen de Docker que contiene la aplicación web go de ejemplo proporcionada en el repositorio de ejemplo mencionado anteriormente.

Ejecute los comandos siguientes para crear una instancia de Azure Container Registry:

  1. Cree un grupo de recursos de Azure.

    az group create \
        --name <resourceGroupName> \
        --location eastus
    
  2. Cree una instancia de Azure Container Registry.

    az acr create \
        --resource-group <resourceGroupName> \
        --name <azureContainerRegistryName> \
        --sku basic \
        --admin-enabled true
    
  3. Inicie sesión en la instancia de contenedor de Azure.

    az acr login --name <azureContainerRegistryName>  
    

Reemplace <resourceGroupName> y <azureContainerRegistryName> por los valores adecuados. Tenga en cuenta que el nombre de Azure Container Registry deberá ser único globalmente.

Compilación e inserción de la imagen de Docker

Una vez que haya creado una instancia de Azure Container Registry, compile e inserte la imagen de Docker de la aplicación web go de ejemplo.

Ejecute los comandos siguientes para compilar e insertar la imagen en el registro:

  1. Obtenga la información del servidor de inicio de sesión.

    az acr show \
        --name <azureContainerRegistryName> \
        --resource-group <resourceGroupName> \
        --query loginServer \
        --output tsv  
    
  2. Compile la imagen de Docker localmente.

    docker build -t <loginServer>/<imageName>:latest .
    
  3. Inserte la imagen de Docker en Azure Container Registry.

    docker push <loginServer>/<imageName>:latest
    
  4. Compruebe que la imagen se insertó correctamente en Azure Container Registry.

    az acr repository list \
        --name <azureContainerRegistryName> \
        --output table
    

Reemplace loginServer, imageName y azureContainerRegistryName por los valores adecuados. El nombre de la imagen es la imagen de Docker que se inserta en Azure Container Registry y, posteriormente, se usa para realizar la implementación en Azure Container Apps.

Ahora que tiene una imagen disponible en Azure Container Registry, está listo para implementar la aplicación contenedora de Azure y su entorno.

Crear un entorno de Azure Container Apps

Azure Container Apps no tiene la complejidad de un orquestador de contenedores, pero todavía necesita alguna manera de establecer límites seguros, que es donde entran los entornos de Azure Container Apps. Las aplicaciones de contenedor implementadas en el mismo entorno comparten la misma red virtual y escriben registros en la misma área de trabajo de Log Analytics. Para poder implementar una aplicación de contenedor de Azure, necesitará un entorno en el que realizar la implementación.

Ejecute los comandos siguientes para crear un entorno de Azure Container Apps:

  1. Obtenga la contraseña de administrador de Azure Container Registry.

    ACR_PASSWORD=$(az acr credential show \
        --name <azureContainerRegistryName> \
        --query 'passwords[0].value' \
        --out tsv)
    
  2. Creación de un entorno de Container Apps.

    az containerapp env create \
        --name <containerAppEnvName> \
        --resource-group <resourceGroupName> \
        --location "East US"
    

Implementación en Azure Container Apps

En este momento, ha creado una instancia de Azure Container Registry, compilada e insertada una imagen de Docker en ella y ha creado un entorno de Azure Container Apps. Todo lo que queda es implementar la aplicación.

Ejecute el comando siguiente para implementar la aplicación web Go en Azure Container Apps:

az containerapp create \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --environment <containerAppEnvName> \
    --image "<loginServer>/<imageName>:latest" \
    --registry-server "<loginServer>" \
    --registry-username "<azureContainerRegistryName>" \
    --registry-password "$ACR_PASSWORD" \
    --target-port 8080 \
    --ingress 'external'

Comprobación de la dirección URL de la aplicación web

Ejecute el siguiente comando de la CLI de Azure para obtener el FQDN (nombre de dominio completo) de la entrada de la aplicación web.

APP_FQDN=$(az containerapp show \
    --name <containerAppName> \
    --resource-group <resourceGroupName> \
    --query properties.configuration.ingress.fqdn \
    --output tsv)

A continuación, ejecute el comando curl en el FQDN y confirme que la salida refleja el CÓDIGO HTML del sitio web.

curl "https://$APP_FQDN"

Limpieza de recursos

Cuanda haya terminado con la aplicación de muestra, puede quitar todos los recursos de la aplicación de Azure. Esto evita cargos en marcha y mantiene la suscripción de Azure desordenada. Al quitar el grupo de recursos también se quitan todos los recursos que haya dentro; es la manera más rápida de quitar todos los recursos de Azure de la aplicación.

az group delete \
    --name <resourceGroupName> \
    --no-wait

Pasos siguientes