Configuración de un router de celdas sin servidor para una arquitectura basada en celdas - Recomendaciones de AWS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de un router de celdas sin servidor para una arquitectura basada en celdas

Mian Tariq and Ioannis Lioupras, Amazon Web Services

Resumen

Como punto de entrada al sistema de una aplicación global basada en células, el enrutador de celdas es responsable de asignar de manera eficiente los usuarios a las celdas adecuadas y de proporcionar los puntos de conexión a los usuarios. El enrutador de celdas maneja funciones tales como almacenar user-to-cell mapeos, monitorear la capacidad de la celda y solicitar nuevas celdas cuando sea necesario. Es importante mantener la funcionalidad del router de celdas durante interrupciones posibles.

El marco de diseño de los enrutadores de celdas de este patrón se centra en la resiliencia, la escalabilidad y la optimización general del rendimiento. El patrón utiliza un enrutamiento estático, en el que los clientes almacenan en caché los puntos de conexión al iniciar sesión por primera vez y se comunican directamente con las celdas. Esta disociación mejora la resiliencia del sistema, ya que ayuda a garantizar la funcionalidad ininterrumpida de la aplicación basada en celdas durante una afectación del router de celdas.

Este patrón utiliza una AWS CloudFormation plantilla para implementar la arquitectura. Para obtener detalles sobre lo que implementa la plantilla o para implementar la misma configuración mediante el Consola de administración de AWS, consulte la sección de información adicional.

importante

La demostración, el código y la CloudFormation plantilla que se presentan en este patrón tienen únicamente fines explicativos. El material proporcionado tiene la finalidad única de ilustrar el patrón de diseño y ayudar a la comprensión. La demostración y el código no están listos para la producción y no deben utilizarse para ninguna actividad de producción en directo. Se recomienda no utilizar el código o la demostración en un entorno de producción. Hacerlo será bajo su propia responsabilidad. Recomendamos consultar con los profesionales adecuados y hacer pruebas exhaustivas antes de implementar este patrón o sus componentes en un entorno de producción.

Requisitos previos y limitaciones

Requisitos previos 

Versiones de producto

  • Python 3.12

Arquitectura

En el diagrama siguiente se muestra un diseño general del router de celdas.

El proceso de cinco pasos del enrutador de celdas.

En el diagrama se muestra el flujo de trabajo siguiente:

  1. El usuario se pone en contacto con Amazon API Gateway, que sirve de interfaz para los puntos de conexión de la API del router de celdas.

  2. Amazon Cognito gestiona la autenticación y la autorización.

  3. El AWS Step Functions flujo de trabajo consta de los siguientes componentes:

    • Orchestrator: se Orchestrator utiliza AWS Step Functions para crear un flujo de trabajo o una máquina de estados. La API del router de celdas desencadena el flujo de trabajo. Orchestrator ejecuta funciones de Lambda según la ruta del recurso.

    • Dispatcher: la función Dispatcher de Lambda identifica y asigna una celda estática por cada usuario registrado nuevo. La función busca la celda con el menor número de usuarios, la asigna al usuario y devuelve los puntos de conexión.

    • Mapper ‒ La Mapper operación gestiona las user-to-cell asignaciones dentro de la base de datos RoutingDB Amazon DynamoDB creada por la plantilla. CloudFormation Cuando se desencadena, la función Mapper proporciona sus puntos de conexión a los usuarios ya asignados.

    • Scaler: la función Scaler hace un seguimiento de la ocupación de las celdas y de la capacidad disponible. Cuando sea necesario, la función Scaler puede enviar una solicitud a través de Amazon Simple Queue Service (Amazon SQS) a la capa de aprovisionamiento e implementación para solicitar celdas nuevas.

    • Validator: la función Validator valida los puntos de conexión de las celdas y detecta problemas posibles.

  4. RoutingDBAlmacena la información y los atributos de las celdas (puntos finales de la API, estado, Región de AWS métricas).

  5. Cuando la capacidad disponible de las celdas supera un umbral, el router de celdas solicita servicios de aprovisionamiento e implementación a través de Amazon SQS para crear celdas nuevas.

Cuando se crean celdas nuevas, RoutingDB se actualiza desde la capa de aprovisionamiento e implementación. Sin embargo, ese proceso está fuera del ámbito de este patrón. Para obtener información general de las premisas de diseño de la arquitectura basada en celdas y detalles sobre el diseño del router de celdas que se utiliza en este patrón, consulte la sección Información adicional.

Tools (Herramientas)

Servicios de AWS

  • Amazon API Gateway le ayuda a crear, publicar, mantener, supervisar y proteger REST, HTTP y WebSocket APIs a cualquier escala.

  • AWS CloudFormationle ayuda a configurar AWS los recursos, aprovisionarlos de forma rápida y coherente y gestionarlos a lo largo de su ciclo de vida en todo el Cuentas de AWS mundo Regiones de AWS.

  • Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web.

  • Amazon DynamoDB es un servicio de base de datos de NoSQL completamente administrado que ofrece un rendimiento rápido, predecible y escalable.

  • AWS Lambda es un servicio de computación que ayuda a ejecutar código sin necesidad de aprovisionar ni administrar servidores. Ejecuta el código solo cuando es necesario y amplía la capacidad de manera automática, por lo que solo pagará por el tiempo de procesamiento que utilice.

  • Amazon Simple Storage Service (Amazon S3) es un servicio de almacenamiento de objetos basado en la nube que lo ayuda a almacenar, proteger y recuperar cualquier cantidad de datos.

  • Amazon Simple Queue Service (Amazon SQS) ofrece una cola alojada segura, duradera y disponible que le permite integrar y desacoplar sistemas y componentes de software distribuidos.

  • AWS Step Functionses un servicio de organización sin servidor que le ayuda a combinar funciones de Lambda y otras Servicios de AWS para crear aplicaciones críticas para la empresa.

Otras herramientas

  • Python es un lenguaje de programación informático de uso general.

Repositorio de código

El código de este patrón está disponible en el repositorio Serverless-Cell-Router. GitHub

Prácticas recomendadas

Para conocer las mejores prácticas a la hora de crear arquitecturas basadas en celdas, consulte la siguiente guía de Well-Architected AWS :

Epics

TareaDescripciónHabilidades requeridas

Clone el repositorio de código de muestra.

Para clonar el Serverless-Cell-Router GitHub repositorio en su ordenador, utilice el siguiente comando:

git clone https://github.com/aws-samples/Serverless-Cell-Router/
Desarrollador

Configure las credenciales AWS CLI temporales.

Configure el AWS CLI con las credenciales para su Cuenta de AWS. Este tutorial utiliza las credenciales temporales proporcionadas por la línea de comandos de AWS IAM Identity Center o la opción de acceso programático. Esto establece las variables de AWS_SESSION_TOKEN AWS entorno y AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, con las credenciales adecuadas para su uso con. AWS CLI

Desarrollador

Cree un bucket de S3.

Cree un bucket de S3 que se utilizará para almacenar y acceder a las funciones de Serverless-Cell-Router Lambda para su despliegue mediante la CloudFormation plantilla. Para crear el bucket de S3, utilice el comando siguiente:

aws s3api create-bucket --bucket <bucket name> --region eu-central-1 --create-bucket-configuration LocationConstraint=eu-central-1
Desarrollador

Cree los archivos .zip.

Cree un archivo .zip para cada función de Lambda ubicada en el directorio Functions. Estos archivos .zip se utilizarán para implementar las funciones de Lambda. En un equipo Mac, utilice los comandos zip siguientes:

zip -j mapper-scr.zip Functions/Mapper.py zip -j dispatcher-scr.zip Functions/Dispatcher.py zip -j scaler-scr.zip Functions/Scaler.py zip -j cp validator-scr.zip Functions/Validator.py zip -j dynamodbDummyData-scr.zip Functions/DynamodbDummyData.py
Desarrollador

Copie los archivos .zip en el bucket de S3.

Para copiar todos los archivos .zip de la función de Lambda al bucket de S3, utilice los comandos siguientes:

aws s3 cp mapper-scr.zip s3://<bucket name> aws s3 cp dispatcher-scr.zip s3://<bucket name> aws s3 cp scaler-scr.zip s3://<bucket name> aws s3 cp validator-scr.zip s3://<bucket name> aws s3 cp dynamodbDummyData-scr.zip s3://<bucket name>
Desarrollador
TareaDescripciónHabilidades requeridas

Implemente la CloudFormation plantilla.

Para implementar la CloudFormation plantilla, ejecute el siguiente AWS CLI comando:

aws cloudformation create-stack --stack-name serverless.cell-router \ --template-body file://Serverless-Cell-Router-Stack-v10.yaml \ --capabilities CAPABILITY_IAM \ --parameters ParameterKey=LambdaFunctionMapperS3KeyParameterSCR,ParameterValue=mapper-scr.zip \ ParameterKey=LambdaFunctionDispatcherS3KeyParameterSCR,ParameterValue=dispatcher-scr.zip \ ParameterKey=LambdaFunctionScalerS3KeyParameterSCR,ParameterValue=scaler-scr.zip \ ParameterKey=LambdaFunctionAddDynamoDBDummyItemsS3KeyParameterSCR,ParameterValue=dynamodbDummyData-scr.zip \ ParameterKey=LambdaFunctionsS3BucketParameterSCR,ParameterValue=<S3 bucket storing lambda zip files> \ ParameterKey=CognitoDomain,ParameterValue=<Cognito Domain Name> \ --region <enter your aws region id, e.g. "eu-central-1">
Desarrollador

Compruebe el progreso.

Inicia sesión en Consola de administración de AWS, abre la CloudFormation consola en https://console.aws.amazon.com/cloudformation/y comprueba el progreso del desarrollo de la pila. Cuando el estado sea CREATE_COMPLETE, la pila se habrá implementado correctamente.

Desarrollador
TareaDescripciónHabilidades requeridas

Asigne celdas al usuario.

Para iniciar Orchestrator, ejecute el comando curl siguiente:

curl -X POST \ -H "Authorization: Bearer {User id_token}" \ https://xxxxxx.execute-api.eu-central-1.amazonaws.com/Cell_Router_Development/cells

Orchestrator desencadena la ejecución de la función Dispatcher. Dispatcher, a su vez, verifica la existencia del usuario. Si se encuentra el usuario, Dispatcher devuelve el ID de celda y el punto final asociados URLs. Si no se encuentra al usuario, Dispatcher asigna una celda y envía el ID de celda a la función Scaler para evaluar la capacidad residual de la celda asignada.

La respuesta de la función Scaler es la siguiente:

"cellID : cell-0002 , endPoint_1 : https://xxxxx.execute-api.eu-north-1.amazonaws.com/ , endPoint_2 : https://xxxxxxx.execute-api.eu-central-1.amazonaws.com/"

Desarrollador

Recupere las celdas de los usuarios.

Para utilizar Orchestrator para ejecutar la función Mapper, ejecute el comando siguiente:

curl -X POST \ -H "Authorization: Bearer {User id_token}" \ https://xxxxxxxxx.execute-api.eu-central-1.amazonaws.com/Cell_Router_Development/mapper

OrchestratorBusca la celda asignada al usuario y devuelve el ID de la celda y URLs obtiene la siguiente respuesta:

"cellID : cell-0002 , endPoint_1 : https://xxxxx.execute-api.eu-north-1.amazonaws.com/ , endPoint_2 : https://xxxxxxx.execute-api.eu-central-1.amazonaws.com/"

Desarrollador
TareaDescripciónHabilidades requeridas

Limpie los recursos.

Para evitar el cobro de otros cargos en su cuenta, haga lo siguiente:

  1. Vacíe el bucket de S3 que creó para las funciones de Lambda.

  2. Elimine el bucket .

  3. Elimine la CloudFormation pila.

Desarrollador de aplicaciones

Recursos relacionados

Referencias

Video

Physalia: Cell-based Architecture to Provide Higher Availability on Amazon EBS

https://www.youtube-nocookie.com/embed/6 ¿Iknq? RZMFic controles = 0

Información adicional

Premisas de diseño de arquitectura basada en celdas

Si bien este patrón se centra en el router de celdas, es importante comprender todo el entorno. El entorno está estructurado en tres capas discretas:

  • La capa de enrutamiento, o capa delgada, que contiene el enrutador de celdas

  • La capa de celdas, que comprende varias celdas

  • La capa de aprovisionamiento e implementación, que aprovisiona las celdas e implementa la aplicación

Cada capa mantiene su funcionalidad incluso en el caso de que las deficiencias afecten a otras capas. Cuentas de AWS sirven como límite de aislamiento de fallas.

En el diagrama siguiente se muestran las capas en un nivel general. La capa de celdas y la capa de aprovisionamiento e implementación quedan fuera del alcance de este patrón.

La capa de enrutamiento, la capa de celdas con varias cuentas de celdas y la capa de aprovisionamiento e implementación.

Para más información sobre la arquitectura basada en celdas, consulte Reducing the Scope of Impact with Cell-Based Architecture: Cell routing.

Patrón de diseño de router de celdas

El enrutador de celdas es un componente compartido en las celdas. Para mitigar los impactos posibles, es importante que la capa de enrutamiento utilice un diseño simplista y escalable horizontalmente que sea lo más delgado posible. La capa de enrutamiento, que sirve como punto de entrada al sistema, consta solo de los componentes necesarios para asignar a los usuarios de manera eficiente a las celdas adecuadas. Los componentes de esta capa no participan en la administración ni en la creación de celdas.

Este patrón utiliza el enrutamiento estático, lo que significa que el cliente almacena los puntos de conexión en las memorias caché durante el inicio de sesión inicial y, posteriormente, establece una comunicación directa con la celda. Se inician interacciones periódicas entre el cliente y el router de celdas para confirmar el estado actual o recuperar las actualizaciones. Este desacoplamiento intencionado permite a los usuarios actuales operar sin interrupciones en caso de que haya tiempo de inactividad del router de celdas y proporciona una funcionalidad y resiliencia continuas al sistema.

En este patrón, el router de celdas admite las funcionalidades siguientes:

  • Recuperación de datos de celdas a partir de la base de datos de celdas en la capa de aprovisionamiento e implementación. Almacenamiento o actualización de la base de datos local.

  • Asignación de una celda a cada usuario registrado nuevo de la aplicación mediante el algoritmo de asignación de celdas.

  • Almacenar el user-to-cells mapeo en la base de datos local.

  • Comprobación de la capacidad de las celdas durante la asignación de usuarios. Generación de un evento para la máquina expendedora a la capa de aprovisionamiento e implementación para crear celdas.

  • Uso del algoritmo de criterios de creación de celdas para proporcionar esta funcionalidad.

  • Responder a las solicitudes de los usuarios recién registrados proporcionando URLs las celdas estáticas. Se URLs almacenarán en caché en el cliente con un tiempo de vida (TTL).

  • Respuesta a las solicitudes de los usuarios existentes sobre una URL no válida al proporcionar una URL nueva o actualizada.

Para comprender mejor el router celular de demostración que se configura mediante la CloudFormation plantilla, revise los siguientes componentes y pasos:

  1. Defina y configure el grupo de usuarios de Amazon Cognito.

  2. Defina y configure la API de API Gateway para el router de celdas.

  3. Crear una tabla de DynamoDB.

  4. Cree y configure una cola de SQS.

  5. Implemente la función Orchestrator.

  6. Implemente las funciones de Lambda: Dispatcher, Scaler, Mapper, Validator.

  7. Evalúe y verifique.

El supuesto es que la capa de aprovisionamiento e implementación ya está establecida. Los detalles de su implementación quedan fuera del alcance de este artefacto.

Como estos componentes se configuran y configuran mediante una CloudFormation plantilla, los siguientes pasos se presentan de forma descriptiva y de alto nivel. Se supone que tiene los AWS conocimientos necesarios para completar la instalación y la configuración.

1. Defina y configure el grupo de usuarios de Amazon Cognito

Inicie sesión en y abra la Consola de administración de AWS consola de Amazon Cognito en. https://console.aws.amazon.com/cognito/ Defina y configure un grupo de usuarios de Amazon Cognito denominado CellRouterPool, con integración de aplicaciones, interfaz de usuario alojada y permisos necesarios.

2. Defina y configure la API de API Gateway para el router de celdas

Abra la consola de API Gateway en https://console.aws.amazon.com/apigateway/. Defina y configure una API denominada CellRouter, mediante un autorizador de Amazon Cognito integrado con el grupo de usuarios CellRouterPool de Amazon Cognito. Implemente los elementos siguientes:

  • Recursos de API CellRouter, tal como los métodos POST

  • Integración con el flujo de trabajo de Step Functions implementada en el paso 5

  • Autorización a través del autorizador de Amazon Cognito

  • Asignaciones de solicitudes y respuestas de integración

  • Asignación de los permisos necesarios

3. Crear una tabla de DynamoDB

Abra la consola de DynamoDB https://console.aws.amazon.com/dynamodb/en y cree una tabla de DynamoDB estándar llamada con la siguiente configuración: tbl_router

  • Clave de partición ‒ marketId

  • Clave de clasificacióncellId

  • Modo de capacidad: provisioned

  • Point-in-time recuperación (PITR) ‒ Desactivada

En la pestaña Índices, cree un índice secundario global llamado marketId-currentCapacity-index. La función de Lambda Scaler utilizará el índice para hacer búsquedas eficaces en la celda con el menor número de usuarios asignados.

Cree la estructura de tabla con los atributos siguientes:

  • marketId: Europe

  • cellId: cell-0002

  • currentCapacity: 2

  • endPoint_1: <su punto de conexión de la primera región>

  • endPoint_2: <su punto de conexión de la segunda región>

  • IsHealthy: true

  • maxCapacity: 10

  • regionCode_1eu-north-1

  • regionCode_2eu-central-1

  • userIds: <su dirección de correo electrónico>

4. Cree y configure una cola de SQS

Abra la consola de Amazon SQS en https://console.aws.amazon.com/sqs/y cree una cola SQS estándar denominada configurada con cifrado de claves CellProvisioning Amazon SQS.

5. Implemente la función Orchestrator

Desarrolle un flujo de trabajo de Step Functions que sirva de Orchestrator para el router. Se puede acceder al flujo de trabajo a través de la API del enrutador de celdas. El flujo de trabajo ejecuta las funciones de Lambda designadas según la ruta de recursos. Integre la función step con la API de API Gateway para el router de celdas CellRouter y configure los permisos necesarios para invocar las funciones de Lambda.

El siguiente diagrama muestra el flujo de trabajo. El estado de elección invoca una de las funciones de Lambda. Si la función de Lambda se ejecuta de manera correcta, el flujo de trabajo termina. Si se produce un error en la función de Lambda, se invoca el estado de error.

Un diagrama del flujo de trabajo con las cuatro funciones y que termina en estado de error.

6. Implemente las funciones de Lambda

Implemente las funciones Dispatcher, Mapper, Scaler y Validator. Al definir y configurar cada función en la demostración, defina un rol para la función y asigne los permisos necesarios para realizar las operaciones necesarias en la tabla de DynamoDB tbl_router. Además, integre cada función en el flujo de trabajo Orchestrator.

Función dispatcher

La función Dispatcher se encarga de identificar y asignar una única celda estática para cada nuevo usuario registrado. Cuando un usuario nuevo se registra en la aplicación global, la solicitud se dirige a la función Dispatcher. La función procesa la solicitud mediante criterios de evaluación predefinidos, como los siguientes:

  1. Región: seleccione la celda del mercado donde se encuentra el usuario. Por ejemplo, si el usuario accede a la aplicación global desde Europa, seleccione una celda que se utilice Regiones de AWS en Europa.

  2. Proximidad o latencia: seleccione la celda más cercana al usuario. Por ejemplo, si el usuario accede a la aplicación desde Holanda, la función considerará una celda que utilice Fráncfort e Irlanda. La decisión sobre qué celda está más cerca se basa en métricas como la latencia entre la ubicación del usuario y las regiones de la celda. Para este patrón de ejemplo, la información se suministra de manera estática desde la capa de aprovisionamiento e implementación.

  3. Estado: la función Dispatcher comprueba si es correcto el estado de la celda seleccionada según el estado de la celda proporcionado (Correcto = verdadero o falso).

  4. Capacidad: la distribución de usuarios se basa en la lógica del número mínimo de usuarios de una celda, por lo que el usuario se asigna a la celda que tiene el menor número de usuarios.

nota

Estos criterios se presentan solo para explicar este patrón de ejemplo. Para una implementación real de un router de celdas, puede definir criterios más refinados y basados en casos de uso.

La función Orchestrator invoca la función Dispatcher para asignar usuarios a las celdas. En esta función de demostración, el valor de mercado es un parámetro estático definido como europe.

La función Dispatcher evalúa si una celda ya está asignada al usuario. Si la celda ya está asignada, la función Dispatcher devuelve los puntos de conexión de la celda. Si no se asigna ninguna celda al usuario, la función busca la celda con el menor número de usuarios, la asigna al usuario y devuelve los puntos de conexión. La eficacia de la consulta de búsqueda de celdas se optimiza mediante el uso del índice secundario global.

Función mapper

La Mapper función supervisa el almacenamiento y el mantenimiento de las user-to-cell asignaciones en la base de datos. Se asigna una celda única a cada usuario registrado. Cada celda tiene dos celdas distintas URLs, una para cada región de AWS. Funcionan como puntos finales de API alojados en API Gateway y URLs funcionan como puntos de entrada a la aplicación global.

Cuando la Mapper función recibe una solicitud de la aplicación cliente, ejecuta una consulta en la tbl_router tabla de DynamoDB para recuperar user-to-cell la asignación asociada al ID de correo electrónico proporcionado. Si encuentra una celda asignada, la Mapper función proporciona inmediatamente las dos de la celda. URLs La Mapper función también monitorea activamente las alteraciones de la celda URLs e inicia notificaciones o actualizaciones de la configuración del usuario.

Función scaler

La función Scaler administra la capacidad residual de la celda. Para cada nueva solicitud de registro de usuario, la función Scaler evalúa la capacidad disponible de la celda que la función Dispatcher asignó al usuario. Si la celda ha alcanzado su límite predeterminado de acuerdo con los criterios de evaluación especificados, la función inicia una solicitud a través de una cola de Amazon SQS a la capa de aprovisionamiento e implementación, y solicita el aprovisionamiento y la implementación de celdas nuevas. El escalado de las celdas se puede ejecutar según un conjunto de criterios de evaluación, como los siguientes:

  1. Usuarios máximos: cada celda puede tener un número máximo de 500 usuarios.

  2. Capacidad del búfer: la capacidad del búfer de cada celda es del 20 %, lo que significa que cada celda se puede asignar a 400 usuarios en cualquier momento. El 20 % restante de la capacidad de búfer se reserva para futuros casos de uso y para la gestión de situaciones inesperadas (por ejemplo, cuando los servicios de creación y aprovisionamiento de celdas no están disponibles).

  3. Creación de celdas: en cuanto una celda existente alcanza el 70 % de su capacidad, se activa una solicitud para crear una celda adicional.

nota

Estos criterios se presentan solo para explicar este patrón de ejemplo. Para una implementación real de un router de celdas, puede definir criterios más refinados y basados en casos de uso.

El código Scaler de demostración es ejecutado por la función Orchestrator después de que la función Dispatcher ha asignado correctamente una celda al usuario recién registrado. La función Scaler, tras recibir el ID de la celda por parte de la función Dispatcher, evalúa si la celda designada tiene la capacidad adecuada para alojar a más usuarios, según los criterios de evaluación predefinidos. Si la capacidad de la celda es insuficiente, la función Scaler envía un mensaje al servicio Amazon SQS. El servicio recupera este mensaje en la capa de aprovisionamiento e implementación e inicia el aprovisionamiento de una celda nueva.

Función validator

La función Validator identifica y resuelve los problemas relacionados con el acceso a la celda. Cuando un usuario inicia sesión en la aplicación global, la aplicación recupera las celdas de la configuración del perfil URLs del usuario y dirige las solicitudes de los usuarios a una de las dos regiones asignadas dentro de la celda. Si no URLs se puede acceder a ellas, la aplicación puede enviar una solicitud de validación de URL al router móvil. El router de celdas de la función Orchestrator invoca a la función Validator. La función Validator inicia el proceso de validación. La validación puede incluir, entre otras comprobaciones, las siguientes:

  • Hacer una referencia cruzada de la celda URLs de la solicitud con la URLs almacenada en la base de datos para identificar y procesar posibles actualizaciones

  • Hacer una comprobación de estado exhaustiva (por ejemplo, una solicitud HTTP GET al punto de conexión de la celda)

En conclusión, la función Validator responde a las solicitudes de los clientes y proporciona el estado de la validación y las medidas correctivas necesarias.

La función Validator está diseñada para mejorar la experiencia del usuario. Imagine un escenario en el que usuarios determinados tengan dificultades para acceder a la aplicación global porque un incidente provoca que las celdas no estén disponibles temporalmente. En lugar de presentar errores genéricos, la función Validator puede proporcionar pasos de corrección instructivos. Entre estos pasos se pueden incluir los siguientes:

  • Informe a los usuarios acerca del incidente.

  • Proporcione un tiempo de espera aproximado antes de la disponibilidad del servicio.

  • Proporcione un número de contacto de asistencia para obtener información adicional.

El código de demostración de la Validator función verifica que la celda proporcionada por el usuario URLs en la solicitud coincida con los registros almacenados en la tabla. tbl_router La función Validator también comprueba si el estado de las celdas es correcto.