Inicio rápido: compilación e implementación desde un repositorio de Azure Container Apps
En este artículo se muestra cómo compilar e implementar un microservicio en Azure Container Apps desde un repositorio de GitHub mediante el lenguaje de programación que prefiera. En este inicio rápido, creará un microservicio de ejemplo, que representa un servicio de API web de back-end que devuelva una colección estática de álbumes de música.
Esta aplicación de ejemplo está disponible en dos versiones. Una versión incluye un contenedor, donde el origen contiene un Dockerfile. La otra versión no tiene Dockerfile. Seleccione la versión que mejor refleje el código fuente. Si no está familiarizado con los contenedores, seleccione la opción Sin Dockerfile de la parte superior.
Nota:
También puede compilar e implementar esta aplicación de ejemplo desde el sistema de archivos local. Para más información, consulte Compilación a partir del código fuente local e implementación de la aplicación en Azure Container Apps.
En la captura de pantalla siguiente, se muestra la salida del servicio de la API de álbumes que implementaste.
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 | Obtenga una gratis. |
git | Instalación de git |
Azure CLI | Instale la CLI de Azure. |
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.
export RESOURCE_GROUP="album-containerapps"
export LOCATION="canadacentral"
export ENVIRONMENT="env-album-containerapps"
export API_NAME="album-api"
export 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.
export ACR_NAME="acaalbums"$GITHUB_USERNAME
Preparación del repositorio de GitHub
En una ventana del explorador, vaya al repositorio de GitHub del 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. A continuación, copie la dirección URL del repositorio para usarla en el siguiente paso.
En una ventana del explorador, vaya al repositorio de GitHub del idioma que prefiera y bifurque el repositorio incluidas las ramas.
Seleccione el botón Bifurcar situado en la parte superior del repositorio de API de álbum para bifurcar el repositorio en su cuenta. Desactive "Copiar solo la rama main
" para bifurcar también la rama buildpack
.
Creación e implementación de la aplicación contenedora
Compile e implemente la primera aplicación contenedora desde el repositorio GitHub local con el comando containerapp up
. Este comando hará lo siguiente:
- Creación del grupo de recursos
- Creación de un entorno de Container Apps mediante un área de trabajo de Log Analytics
- Creación de una instancia de Azure Container Registry
- Creación de un flujo de trabajo de Acción de GitHub para compilar e implementar la aplicación contenedora
- Crear el grupo de recursos
- Creación de un entorno de Container Apps mediante un área de trabajo de Log Analytics
- Creación automática de un registro predeterminado como parte del entorno
- Creación de un flujo de trabajo de Acción de GitHub para compilar e implementar la aplicación contenedora
Al insertar código nuevo en el repositorio, la acción de GitHub hará lo siguiente:
- Compilación de la imagen de contenedor e inserción en Azure Container Registry
- Implementación de la imagen de contenedor en la aplicación de contenedor creada
El comando up
usa el Dockerfile en la raíz del repositorio para compilar la imagen del contenedor. La instrucciónEXPOSE
en el Dockerfile define el puerto de destino. No es necesario un archivo de Docker para compilar una aplicación de contenedor.
- Detección automática del idioma y el runtime
- Compilación de la imagen mediante el paquete de compilación adecuado
- Inserte la imagen en el registro predeterminado de Azure Container Apps
La aplicación contenedora debe ser accesible para el tráfico de entrada. Asegúrese de exponer el puerto 8080 para escuchar las solicitudes entrantes.
En el siguiente comando, reemplace <YOUR_GITHUB_REPOSITORY_NAME>
por el nombre de su repositorio de GitHub en forma de https://github.com/<OWNER>/<REPOSITORY-NAME>
o <OWNER>/<REPOSITORY-NAME>
.
En el siguiente comando, reemplace <YOUR_GITHUB_REPOSITORY_NAME>
por el nombre de su repositorio de GitHub en forma de https://github.com/<OWNER>/<REPOSITORY-NAME>
o <OWNER>/<REPOSITORY-NAME>
. Use la opción --branch buildpack
para apuntar al origen de ejemplo sin un Dockerfile.
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--context-path ./src \
--repo <YOUR_GITHUB_REPOSITORY_NAME>
az containerapp up \
--name $API_NAME \
--resource-group $RESOURCE_GROUP \
--location $LOCATION \
--environment $ENVIRONMENT \
--context-path ./src \
--ingress external \
--target-port 8080 \
--repo <YOUR_GITHUB_REPOSITORY_NAME>
--branch buildpack
--
Con la dirección URL y el código de usuario que se muestra en el terminal, vaya a la página de activación de dispositivos de GitHub en un explorador y escriba en ella el código de usuario. Siga las indicaciones para autorizar a la CLI de Azure a acceder al repositorio de GitHub.
El comando up
crea un flujo de trabajo de Acción de GitHub en la carpeta github/workflows del repositorio. El flujo de trabajo se desencadena para compilar e implementar la aplicación contenedora al insertar cambios en el repositorio.
Comprobación de la implementación
Copie el nombre de dominio devuelto por el containerapp up
en un explorador web. En el explorador web, vaya al punto de conexión /albums
de la dirección URL.
Limpieza de recursos
Si no va a continuar con el tutorial Implementación de un front-end, puede quitar los recursos de Azure creados durante este inicio rápido con el siguiente comando.
Precaución
El comando siguiente elimina el grupo de recursos especificado y todos los recursos que contiene. Si el grupo contiene recursos fuera del ámbito de este inicio rápido, también se eliminarán.
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
Después de completar este inicio rápido, puede continuar con Tutorial: Comunicación entre microservicios en Azure Container Apps para aprender a implementar una aplicación de front-end que llama a la API.