Compartir vía


Tutorial: Integración de Admin for Spring con Eureka Server for Spring en Azure Container Apps

Este tutorial le guiará a través del proceso de integración de un administrador administrado para Spring con un servidor Eureka para Spring en Azure Container Apps.

Este artículo contiene contenido similar al tutorial "Conexión a un administrador administrado para Spring en Azure Container Apps", pero con Eureka Server for Spring, puede enlazar Admin for Spring a Eureka Server for Spring para que pueda obtener información de la aplicación a través de Eureka, en lugar de tener que enlazar aplicaciones individuales a Admin for Spring.

Siguiendo esta guía, configurará un servidor Eureka para la detección de servicios y a continuación, creará un administrador de Spring para administrar y supervisar las aplicaciones de Spring registradas con el servidor Eureka. Esta configuración garantiza que otras aplicaciones solo necesiten enlazarse al servidor Eureka, lo que simplifica la administración de los microservicios.

En este tutorial, aprenderá a:

  1. Cree un servidor Eureka para Spring.
  2. Cree un Admin para Spring y vincúlelo al servidor Eureka.
  3. Enlace otras aplicaciones al servidor Eureka para optimizar la detección y administración de servicios.

Requisitos previos

Consideraciones

Al ejecutar componentes de Java administrados en Azure Container Apps, tenga en cuenta los detalles siguientes:

Elemento Explicación
Ámbito Los componentes se ejecutan en el mismo entorno que la aplicación contenedora conectada.
Ampliación El componente no se puede escalar. Las propiedades de escalado minReplicas y maxReplicas se establecen en 1.
Recursos Se ha corregido la asignación de recursos de contenedor para los componentes. El número de núcleos de CPU es 0,5 y el tamaño de memoria es 1 Gi.
Precios La facturación de componentes se encuentra bajo los precios basados en el consumo. Los recursos consumidos por los componentes administrados se facturan a las tarifas activas o inactivas. Puede eliminar componentes que ya no estén en uso para detener la facturación.
Enlace Las aplicaciones de contenedor se conectan a un componente a través de un enlace. Los enlaces insertan configuraciones en variables de entorno de la aplicación contenedora. Una vez establecido un enlace, la aplicación contenedora puede leer los valores de configuración de las variables de entorno y conectarse al componente.

Configurar

Antes de empezar, cree los recursos necesarios ejecutando los siguientes comandos.

  1. Cree variables para admitir la configuración de la aplicación. Estos valores se proporcionan para usted con fines de esta lección.

    export LOCATION=eastus
    export RESOURCE_GROUP=my-services-resource-group
    export ENVIRONMENT=my-environment
    export EUREKA_COMPONENT_NAME=eureka
    export ADMIN_COMPONENT_NAME=admin
    export CLIENT_APP_NAME=sample-service-eureka-client
    export CLIENT_IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"
    
    Variable Descripción
    LOCATION Ubicación de la región de Azure donde se crea la aplicación de contenedor y el componente de Java.
    RESOURCE_GROUP Nombre del grupo de recursos de Azure para la aplicación de demostración.
    ENVIRONMENT El nombre del entorno de Azure Container Apps para la aplicación de demostración.
    EUREKA_COMPONENT_NAME Nombre del componente De Java del servidor Eureka.
    ADMIN_COMPONENT_NAME Nombre del componente Admin for Spring Java.
    CLIENT_APP_NAME Nombre de la aplicación contenedora que se enlaza al servidor Eureka.
    CLIENT_IMAGE Imagen de contenedor usada en la aplicación contenedora de Eureka Server.
  2. Inicie sesión en Azure con la CLI de Azure.

    az login
    
  3. Cree un grupo de recursos.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  4. Cree el entorno de aplicaciones de contenedor.

    az containerapp env create \
        --name $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --query "properties.provisioningState"
    

    El uso del parámetro --query filtra la respuesta a un mensaje de éxito o error simple.

Opcional: Crear el servidor Eureka para Spring

Si no tiene un servidor Eureka para Spring existente, siga el comando siguiente para crear el componente de Java del servidor Eureka. Para obtener más información, consulte Crear el servidor Eureka para Spring.

az containerapp env java-component eureka-server-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $EUREKA_COMPONENT_NAME

Enlazar los componentes juntos

Cree el componente Admin for Spring Java ( Administrador para Spring Java).

az containerapp env java-component admin-for-spring create \
    --environment $ENVIRONMENT \
    --resource-group $RESOURCE_GROUP \
    --name $ADMIN_COMPONENT_NAME \
    --min-replicas 1 \
    --max-replicas 1 \
    --bind $EUREKA_COMPONENT_NAME

Enlace de otras aplicaciones al servidor Eureka

Con la configuración del servidor Eureka, ahora puede enlazar otras aplicaciones a ella para la detección de servicios. Además, puede supervisar y administrar estas aplicaciones en el panel de Admin for Spring. Siga estos pasos para crear y enlazar una aplicación de contenedor al servidor Eureka:

Cree la aplicación contenedora y enlazarla al servidor Eureka.

az containerapp create \
    --name $CLIENT_APP_NAME \
    --resource-group $RESOURCE_GROUP \
    --environment $ENVIRONMENT \
    --image $CLIENT_IMAGE \
    --min-replicas 1 \
    --max-replicas 1 \
    --ingress external \
    --target-port 8080 \
    --bind $EUREKA_COMPONENT_NAME 

Sugerencia

Dado que los pasos anteriores enlazan el componente Admin for Spring al componente Eureka Server for Spring, el componente Admin habilita la detección de servicios y le permite administrarlo a través del panel Admin for Spring al mismo tiempo.

Visualización de los paneles

Importante

Para ver el panel, debe tener al menos el rol de Microsoft.App/managedEnvironments/write asignado a su cuenta en el recurso de entorno administrado. Puede asignar explícitamente el rol Owner o Contributor en el recurso o seguir los pasos para crear una definición de rol personalizada y asignarla a su cuenta.

  1. Cree la definición de rol personalizada.

    az role definition create --role-definition '{
        "Name": "Java Component Dashboard Access",
        "IsCustom": true,
        "Description": "Can access managed Java Component dashboards in managed environments",
        "Actions": [
            "Microsoft.App/managedEnvironments/write"
        ],
        "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"]
    }'
    

    Asegúrese de reemplazar el marcador de posición <SUBSCRIPTION_ID> en el valor de AssignableScopes por el identificador de suscripción.

  2. Asigne el rol personalizado a su cuenta en el recurso de entorno administrado.

    Obtenga el identificador de recurso del entorno administrado.

    export ENVIRONMENT_ID=$(az containerapp env show \
        --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \
        --query id \
        --output tsv)
    
  3. Asigne el rol a su cuenta.

    Antes de ejecutar este comando, reemplace el marcador de posición <USER_OR_SERVICE_PRINCIPAL_ID> por el identificador de usuario o entidad de servicio.

    az role assignment create \
        --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \
        --role "Java Component Dashboard Access" \
        --scope $ENVIRONMENT_ID
    
  4. Obtenga la dirección URL del panel Administrador de Spring.

    az containerapp env java-component admin-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $ADMIN_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    
  5. Obtenga la dirección URL del panel de Eureka Server for Spring.

    az containerapp env java-component eureka-server-for-spring show \
        --environment $ENVIRONMENT \
        --resource-group $RESOURCE_GROUP \
        --name $EUREKA_COMPONENT_NAME \
        --query properties.ingress.fqdn \
        --output tsv
    

    Este comando devuelve la dirección URL que puede usar para acceder al panel de Eureka Server para Spring. A través del panel, la aplicación contenedora también se muestra como se muestra en el recorte de pantalla siguiente.

    Recorte de pantalla del panel Administrador de Spring.

    Recorte de pantalla del panel de Eureka Server for Spring.

Limpieza de recursos

Los recursos creados en este tutorial tienen un efecto en la factura de Azure. Si no va a usar estos servicios a largo plazo, ejecute el siguiente comando para quitar todo lo creado en este tutorial.

az group delete --resource-group $RESOURCE_GROUP