Compartir a través de


Tutorial: Compilación e implementación de la aplicación en Azure Container Apps

En este artículo se muestra cómo compilar e implementar un microservicio en Azure Container Apps desde un repositorio de origen mediante el lenguaje de programación que prefiera.

Este tutorial es el primero de una serie de artículos que le guiarán por el uso de funcionalidades principales de Azure Container Apps. El primer paso es crear un servicio de API web de back-end que devuelva una colección estática de álbumes de música.

Nota

También puede compilar e implementar esta aplicación mediante az containerapp up siguiendo las instrucciones del artículo Inicio rápido: Compilación e implementación de una aplicación en Azure Container Apps desde un repositorio. El comando az containerapp up es una manera rápida y cómoda de compilar e implementar la aplicación en Azure Container Apps mediante un único comando. Sin embargo, no proporciona el mismo nivel de personalización para la aplicación contenedora.

El siguiente tutorial de la serie compilará e implementará la aplicación web de front-end en Azure Container Apps.

En la captura de pantalla siguiente se muestra la salida de la API de álbum implementada en este tutorial.

Captura de pantalla de la respuesta del punto de conexión de la API de álbumes.

Requisitos previos

Para completar este proyecto, necesita los siguientes elementos:

Requisito Instructions
Cuenta de Azure Si no tiene ninguna cuenta, cree una gratuita. Necesita el administrador de acceso de usuario o permiso propietario en la suscripción de Azure para continuar. Asegúrese de usar el rol más restrictivo para el contexto.

Consulte Asignación de roles de Azure mediante Azure Portal y roles de Azure, roles de Microsoft Entra y roles de administrador de suscripciones clásicospara más información.
Cuenta de GitHub Regístrese gratis.
git Instalación de git
Azure CLI Instale la CLI de Azure.
Requisito Instructions
Cuenta de Azure Si no tiene ninguna cuenta, cree una gratuita. Necesita el permiso Colaborador o Propietario en la suscripción de Azure para continuar. Consulte Asignación de roles de Azure mediante Azure Portal para obtener más información.
Cuenta de GitHub Regístrese gratis.
git Instalación de git
Azure CLI Instale la CLI de Azure.
Docker Desktop Docker dispone de instaladores que configuran el entorno de Docker en macOS, Windows y Linux.

En el símbolo del sistema, escriba docker para asegurarse de que Docker se está ejecutando.

Configurar

Para iniciar sesión en Azure desde la CLI, ejecute el siguiente comando y siga las indicaciones para completar el proceso de autenticación.

az login

Para asegurarse de que ejecuta la versión más reciente de la CLI, ejecute el comando de actualización.

az upgrade

Luego, instale o actualice la extensión de Azure Container Apps para la CLI.

Si recibe errores sobre los parámetros que faltan al ejecutar az containerapp comandos en la CLI de Azure o cmdlets del Az.App módulo en Azure PowerShell, asegúrese de que tiene instalada la versión más reciente de la extensión Azure Container Apps.

az extension add --name containerapp --upgrade

Nota:

A partir de mayo de 2024, las extensiones de la CLI de Azure ya no habilitan las características en versión preliminar de forma predeterminada. Para acceder a las características de la versión preliminar de Container Apps, instale la extensión Container Apps con --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

Ahora que la extensión o módulo actualizado está instalado, registre los espacios de nombre Microsoft.App y Microsoft.OperationalInsights.

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

Creación de variables de entorno

Ahora que la configuración de la CLI de Azure está completa, puede definir las variables de entorno que se usan en este artículo.

Defina las siguientes variables en el shell de Bash.

RESOURCE_GROUP="album-containerapps"
LOCATION="canadacentral"
ENVIRONMENT="env-album-containerapps"
API_NAME="album-api"
FRONTEND_NAME="album-ui"
GITHUB_USERNAME="<YOUR_GITHUB_USERNAME>"

Antes de ejecutar este comando, asegúrese de reemplazar <YOUR_GITHUB_USERNAME> por el nombre de usuario de GitHub.

A continuación, defina un nombre de registro de contenedor único.

ACR_NAME="acaalbums"$GITHUB_USERNAME

Preparación del repositorio de GitHub

Vaya al repositorio para el idioma que prefiera y bifurque el repositorio.

Seleccione el botón Bifurcar situado en la parte superior del repositorio de API de álbum para bifurcar el repositorio en su cuenta.

Ahora puede clonar la bifurcación del repositorio de ejemplo.

Use el siguiente comando git para clonar el repositorio bifurcado en la carpeta de código a nube:

git clone https://github.com/$GITHUB_USERNAME/containerapps-albumapi-csharp.git code-to-cloud

A continuación, cambie el directorio a la raíz del repositorio clonado.

cd code-to-cloud/src

Creación de un grupo de recursos de Azure

Cree un grupo de recursos para organizar los servicios relacionados con la implementación de la aplicación contenedora.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

Creación de una instancia de Azure Container Registry

  1. Una vez creada la imagen de contenedor de la API de álbum, cree una instancia de Azure Container Registry (ACR) en el grupo de recursos para almacenarla.

    az acr create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --name $ACR_NAME \
        --sku Basic
    
  2. El registro de contenedor debe permitir los tokens de audiencia de Azure Resource Manager (ARM) para la autenticación con el fin de usar la identidad administrada para extraer imágenes.

    Use el siguiente comando para comprobar si se permite que los tokens de ARM accedan a Azure Container Registry (ACR).

    az acr config authentication-as-arm show --registry "$ACR_NAME"
    

    Si se permiten los tokens de ARM, el comando genera lo siguiente.

    {
      "status": "enabled"
    }
    

    Si status es disabled, permita los tokens de ARM con el comando siguiente.

    az acr config authentication-as-arm update --registry "$ACR_NAME" --status enabled
    

Creación de una identidad administrada asignada por el usuario

Para evitar el uso de credenciales administrativas, extraiga las imágenes de repositorios privados de Microsoft Azure Container Registry mediante identidades administradas para la autenticación. Cuando sea posible, use una identidad administrada asignada por el usuario para extraer las imágenes.

  1. Creación de una identidad administrada asignada por el usuario. Antes de ejecutar los comandos siguientes, elija el nombre de la identidad administrada y reemplace \<PLACEHOLDER\> por el nombre.

    IDENTITY="<YOUR_IDENTITY_NAME>"
    
    az identity create \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP
    
  2. Obtenga el identificador de recurso de la identidad.

    IDENTITY_ID=$(az identity show \
        --name $IDENTITY \
        --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    

Compilación de la aplicación

Con las tareas de ACR, puede compilar e insertar la imagen de Docker para la API de álbum sin instalar Docker localmente.

Compilación del contenedor con ACR

Ejecute el comando siguiente para iniciar el proceso de compilación e inserción de imágenes mediante ACR. El elemento . al final del comando representa el contexto de compilación de Docker, lo que significa que este comando se debe ejecutar dentro de la carpeta src donde se encuentra el Dockerfile.

az acr build --registry $ACR_NAME --image $API_NAME .

La salida del comando az acr build muestra el progreso de carga del código fuente en Azure y los detalles de las operaciones docker build y docker push.

Compilación de la aplicación

Los siguientes pasos muestran cómo compilar la imagen de contenedor localmente mediante Docker e insertar la imagen en el nuevo registro de contenedor.

Compilación del contenedor con Docker

El siguiente comando compila una imagen de contenedor para la API de álbum y la etiqueta con el nombre completo del servidor de inicio de sesión de ACR. El elemento . al final del comando representa el contexto de compilación de Docker, lo que significa que este comando se debe ejecutar dentro de la carpeta src donde se encuentra el Dockerfile.

docker build --tag $ACR_NAME.azurecr.io/$API_NAME .

Inserción de la imagen en el registro de contenedor

Primero, inicie sesión en su instancia de Azure Container Registry.

az acr login --name $ACR_NAME

A continuación, inserte la imagen en el registro.

docker push $ACR_NAME.azurecr.io/$API_NAME

Creación de un entorno de Container Apps

El entorno de Azure Container Apps actúa como un límite seguro alrededor de un grupo de aplicaciones de contenedor.

Cree el entorno de Container Apps mediante el siguiente comando.

az containerapp env create \
  --name $ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION"

Implementación de la imagen en una aplicación contenedora

Ahora que ha creado un entorno, puede crear e implementar la aplicación contenedora con el comando az containerapp create.

Cree e implemente la aplicación contenedora con el siguiente comando.

az containerapp create \
  --name $API_NAME \
  --resource-group $RESOURCE_GROUP \
  --environment $ENVIRONMENT \
  --image $ACR_NAME.azurecr.io/$API_NAME \
  --target-port 8080 \
  --ingress external \
  --registry-server $ACR_NAME.azurecr.io \
  --user-assigned "$IDENTITY_ID" \
  --registry-identity "$IDENTITY_ID" \
  --query properties.configuration.ingress.fqdn
  • Al establecer --ingress en external, la aplicación contenedora será accesible desde la red pública de Internet.

  • target-port se establece en 8080 para que coincida con el puerto en el que el contenedor está procesando solicitudes.

  • Sin una propiedad query, la llamada a az containerapp create devuelve una respuesta JSON que incluye un amplio conjunto de detalles sobre la aplicación. Al agregar un parámetro de consulta, se filtra la salida solo al nombre de dominio completo (FQDN) de la aplicación.

  • Este comando agrega el rol acrPull a la identidad administrada asignada por el usuario, por lo que puede extraer imágenes del registro de contenedor.

Comprobación de la implementación

Copie el FQDN en un explorador web. En el explorador web, vaya al punto de conexión /albums del FQDN.

Captura de pantalla de la respuesta del punto de conexión de la API de álbumes.

Limpieza de recursos

Si no va a continuar con el tutorial Comunicación entre microservicios, puede quitar los recursos de Azure creados durante este inicio rápido. Ejecute el siguiente comando para eliminar el grupo de recursos junto con todos los recursos que creó en este inicio rápido.

az group delete --name $RESOURCE_GROUP

Sugerencia

¿Tiene problemas? Háganoslo saber en GitHub abriendo una incidencia en el repositorio de Azure Container Apps.

Pasos siguientes

Este inicio rápido es el punto de entrada de un conjunto de tutoriales progresivos que muestran las distintas características de Azure Container Apps. Continúe para obtener información sobre cómo habilitar la comunicación desde un front-end web que llama a la API que implementó en este artículo.