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.
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 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. |
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 asegurar 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.
az extension add --name containerapp --upgrade
Ahora que la extensión o módulo actual está instalado, registre los espacios de nombre Microsoft.App
y Microsoft.OperationalInsights
.
Nota:
Los recursos de Azure Container Apps han migrado desde el espacio de nombres Microsoft.Web
al espacio de nombres Microsoft.App
. Consulte Migración del espacio de nombres de Microsoft.Web a Microsoft.App marzo de 2022 para obtener más detalles.
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
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 \
--name $ACR_NAME \
--sku Basic \
--admin-enabled true
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
En los pasos siguientes se muestra 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 \
--query properties.configuration.ingress.fqdn
Al establecer
--ingress
enexternal
, la aplicación contenedora será accesible desde la red pública de Internet.target-port
se establece en8080
para que coincida con el puerto en el que el contenedor está procesando solicitudes.Sin una propiedad
query
, la llamada aaz 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.
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.
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.