Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta guía rápida, aprenderá a implementar una aplicación en Azure Container Apps que utiliza componentes Java para administrar la configuración, la detección de servicios y el estado y las métricas. La aplicación de muestra utilizada en este ejemplo es Java PetClinic, que utiliza el patrón de arquitectura de microservicios. El siguiente diagrama muestra la arquitectura de la aplicación PetClinic en Azure Container Apps:
La aplicación PetClinic incluye las siguientes características:
- El front-end es una aplicación web Node.js independiente alojada en la aplicación de puerta de enlace API.
- La puerta de enlace de la API dirige las solicitudes a las aplicaciones de servicios de back-end.
- Las aplicaciones back-end se crean con Spring Boot.
- Cada aplicación back-end utiliza una base de datos HyperSQL como almacén persistente.
- Las aplicaciones utilizan componentes Java administrados en Azure Container Apps, incluido un registro de servicios, un Config Server y un servidor de administración.
- El Config Server lee datos de un repositorio Git.
- Un área de trabajo de Log Analytics registra los datos del servidor.
En este tutorial ha:
- Crear un Config Server, un servidor Eureka, un servidor de administración y componentes de administración
- Crear una serie de aplicaciones de microservicios
- Vincule los componentes del servidor a sus aplicaciones de microservicios
- Implemente la colección de aplicaciones
- Revisar las aplicaciones implementadas
Al final de este artículo, habrá implementado una aplicación web y tres aplicaciones back-end configuradas para trabajar con tres componentes Java diferentes. A continuación, puede administrar cada componente a través de Azure Portal.
Requisitos previos
- Cuenta Azure: si no tiene una cuenta Azure, cree una gratis. Necesita el permiso de Colaborador oPropietario en la suscripción de Azure para utilizar este inicio rápido. Para más información, consulte Asignación de roles de Azure mediante Azure Portal.
- CLI de Azure: instale CLI de Azure.
- Extensión CLI de Azure Container Apps. Utilice la versión 0.3.47 o superior. Use el comando
az extension add --name containerapp --upgrade --allow-preview
para instalar la versión más reciente.
Configurar
Para crear variables de entorno, un grupo de recursos y un entorno de Azure Container Apps, siga estos pasos:
Las variables de entorno contienen sus valores personalizados, así que sustituya los valores de marcador de posición rodeados por
<>
con sus propios valores antes de ejecutar los siguientes comandos:export RESOURCE_GROUP=<RESOURCE_GROUP> export LOCATION=<LOCATION> export CONTAINER_APP_ENVIRONMENT=<CONTAINER_APPS_ENVIRONMENT>
Ahora crea más variables de entorno que contengan la configuración de su aplicación de microservicios. Estos valores se utilizan para definir los nombres y las configuraciones de los componentes Java y las Azure Container Apps que se utilizan para implementar los microservicios. Cree estas variables de entorno utilizando los siguientes comandos:
export CONFIG_SERVER_COMPONENT=configserver export ADMIN_SERVER_COMPONENT=admin export EUREKA_SERVER_COMPONENT=eureka export CONFIG_SERVER_URI=https://github.com/spring-petclinic/spring-petclinic-microservices-config.git export CUSTOMERS_SERVICE=customers-service export VETS_SERVICE=vets-service export VISITS_SERVICE=visits-service export API_GATEWAY=api-gateway export CUSTOMERS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-customers-service export VETS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-vets-service export VISITS_SERVICE_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-visits-service export API_GATEWAY_IMAGE=ghcr.io/azure-samples/javaaccelerator/spring-petclinic-api-gateway
Use el siguiente comando para iniciar sesión en la CLI de Azure y elija su suscripción activa:
az login
Cree un grupo de recursos para organizar sus servicios Azure mediante el siguiente comando:
az group create \ --name $RESOURCE_GROUP \ --___location $LOCATION
Cree su entorno Azure Container Apps, que aloja tanto los componentes Java como sus aplicaciones de contenedor, mediante el siguiente comando:
az containerapp env create \ --resource-group $RESOURCE_GROUP \ --name $CONTAINER_APP_ENVIRONMENT \ --___location $LOCATION
Crear componentes Java
Ahora crea los siguientes componentes Java que dan soporte a su aplicación:
- Config Server. Se utiliza para administrar los ajustes de configuración de sus aplicaciones de microservicios.
- Servidor Eureka. Se utiliza para administrar el registro y la detección de servicios.
- Servidor de administración. Se utiliza para supervisar y administrar el estado y las métricas de sus aplicaciones de microservicios.
Para crear estos componentes de servidor, siga estos pasos:
Cree el Config Server para sus componentes Java utilizando el siguiente comando:
az containerapp env java-component config-server-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $CONFIG_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --configuration spring.cloud.config.server.git.uri=$CONFIG_SERVER_URI
Cree el servidor Eureka para sus componentes Java utilizando el siguiente comando:
az containerapp env java-component eureka-server-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_SERVER_COMPONENT --environment $CONTAINER_APP_ENVIRONMENT \
Cree el servidor de administración para sus componentes Java utilizando el siguiente comando:
az containerapp env java-component admin-for-spring create \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_SERVER_COMPONENT --environment $CONTAINER_APP_ENVIRONMENT \
Implementación de las aplicaciones de microservicio
Para implementar las aplicaciones de microservicio Java en Azure Container Apps utilizando las imágenes de contenedor predefinidas, siga estos pasos:
Nota:
En este artículo, se utiliza una serie de imágenes creadas para las aplicaciones de microservicios Spring Petclinic. También tiene la opción de personalizar el código de muestra y utilizar sus propias imágenes. Para obtener más información, consulte el Repositorio GitHub azure-container-apps-java-samples.
Cree la aplicación de datos del cliente utilizando el siguiente comando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $CUSTOMERS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $CUSTOMERS_SERVICE_IMAGE
Cree la aplicación para servicios veterinarios utilizando el siguiente comando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $VETS_SERVICE_IMAGE
Cree la aplicación de visitas utilizando el siguiente comando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $VISITS_SERVICE_IMAGE
Cree la aplicación de puerta de enlace API utilizando el siguiente comando:
az containerapp create \ --resource-group $RESOURCE_GROUP \ --name $API_GATEWAY \ --environment $CONTAINER_APP_ENVIRONMENT \ --image $API_GATEWAY_IMAGE \ --ingress external \ --target-port 8080 \ --query properties.configuration.ingress.fqdn
Vinculación de aplicaciones contenedoras a componentes Java
Luego, vincule los componentes Java a sus aplicaciones contenedoras. Los enlaces que se crean en esta sección proporcionan la siguiente funcionalidad:
- Inyectar datos de configuración en cada aplicación desde el servidor de configuración administrado al inicio.
- Registre la aplicación en el servidor Eureka administrado para la detección de servicios.
- Habilitar el servidor de administración para supervisar la aplicación.
Utilice el comando containerapp update
para crear enlaces para cada aplicación siguiendo los siguientes pasos:
Agregue enlaces a la aplicación de datos del cliente mediante el siguiente comando:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CUSTOMERS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
Agregue enlaces al servicio veterinario utilizando el siguiente comando:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VETS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
Agregue enlaces al servicio de visitas mediante el siguiente comando:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $VISITS_SERVICE \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT
Agregue enlaces a la puerta de enlace API. Utilice el siguiente comando para devolver la URL de la aplicación front-end, y luego abra esta ubicación en su navegador:
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $API_GATEWAY \ --bind $CONFIG_SERVER_COMPONENT $EUREKA_SERVER_COMPONENT $ADMIN_SERVER_COMPONENT \ --query properties.configuration.ingress.fqdn
Comprobación del estado de la aplicación
Siga estos pasos para verificar el estado de la aplicación:
Utilizando la URL devuelta por el comando de la puerta de enlace
az containerapp update
de la API, visualice la aplicación front-end en su navegador. La aplicación debería parecerse a la siguiente captura de pantalla:Consulte el panel de control del servidor Eureka siguiendo estos pasos:
Importante
Para ver el panel de Servidor Eureka y el panel de Admin para Spring, debe tener al menos la función
Microsoft.App/managedEnvironments/write
asignada a su cuenta en el recurso de entorno administrado. Puede asignar explícitamente el rolOwner
oContributor
en el recurso. También puede seguir los pasos para crear una definición de roles personalizada y asignarla a su cuenta.Ejecute el siguiente comando para obtener la URL del panel de control:
az containerapp env java-component eureka-server-for-spring show \ --resource-group $RESOURCE_GROUP \ --name $EUREKA_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --query properties.ingress.fqdn
Abra la URL en su navegador. Debería ver una aplicación parecida a la siguiente captura de pantalla:
Siga estos pasos para ver el panel de control de Administración para Spring:
Utilice el siguiente comando para obtener la URL del panel de control:
az containerapp env java-component admin-for-spring show \ --resource-group $RESOURCE_GROUP \ --name $ADMIN_SERVER_COMPONENT \ --environment $CONTAINER_APP_ENVIRONMENT \ --query properties.ingress.fqdn
Abra la URL en su navegador. Debería ver una aplicación parecida a la siguiente captura de pantalla:
Opcional: configurar componentes Java
Puede configurar los componentes Java creados en este inicio rápido a través de Azure Portal utilizando la sección Configuraciones.
Para obtener más información sobre la configuración de los tres componentes Java que ha creado en este inicio rápido, consulte los siguientes vínculos:
Limpieza de recursos
Los recursos creados en este inicio rápido repercuten en su factura de Azure. Si no va a utilizar estos servicios a largo plazo, utilice el siguiente comando para eliminar todo lo creado en este inicio rápido:
az group delete --resource-group $RESOURCE_GROUP