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 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
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
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
esdisabled
, 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.
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
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
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.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.
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.