

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.

# Solucione problemas de estados AWS Step Functions mediante Amazon Bedrock
<a name="troubleshooting-states-in-aws-step-functions"></a>

*Aniket Kurzadkar y Sangam Kushwaha, Amazon Web Services*

## Resumen
<a name="troubleshooting-states-in-aws-step-functions-summary"></a>

AWS Step Functions Las capacidades de gestión de errores pueden ayudarlo a detectar un error que se produce durante un estado de un [flujo de trabajo](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html), pero aun así puede resultar difícil encontrar la causa raíz de un error y depurarlo. Este patrón aborda ese desafío y muestra cómo Amazon Bedrock puede serle útil para resolver los errores que se producen durante los estados de Step Functions. 

Step Functions orquesta el flujo de trabajo, lo que facilita a los desarrolladores la automatización de los procesos. Step Functions también proporciona una funcionalidad de gestión de errores que ofrece las ventajas siguientes:
+ Los desarrolladores pueden crear aplicaciones más resilientes que no fallen por completo cuando algo sale mal.
+ Los flujos de trabajo pueden incluir lógica condicional para gestionar los distintos tipos de errores de otra manera.
+ El sistema puede volver a intentar las operaciones erróneas de manera automática, tal vez con un retroceso exponencial.
+ Se pueden definir rutas de ejecución alternativas para los escenarios de error, lo que permite que el flujo de trabajo se adapte y continúe procesándose.

Cuando se produce un error en un flujo de trabajo de Step Functions, este patrón muestra cómo se pueden enviar el mensaje de error y el contexto a un modelo fundacional (FM) como Claude 3, compatible con Step Functions. El FM puede analizar el error, clasificarlo y sugerir posibles medidas de corrección.

## Requisitos previos y limitaciones
<a name="troubleshooting-states-in-aws-step-functions-prereqs"></a>

**Requisitos previos **
+ Un activo Cuenta de AWS
+ Comprensión básica de los [flujos de trabajo de AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html)
+ [Conectividad con la API](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html) de Amazon Bedrock

**Limitaciones**
+ Puede utilizar el enfoque de este patrón para varios Servicios de AWS. Sin embargo, los resultados pueden variar en función del mensaje creado por AWS Lambda Amazon Bedrock y evaluado posteriormente.
+ Algunos Servicios de AWS no están disponibles en todos Regiones de AWS. Para obtener información sobre la disponibilidad en regiones, consulte [AWS services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para ver los puntos de conexión específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) y elija el enlace del servicio.

## Arquitectura
<a name="troubleshooting-states-in-aws-step-functions-architecture"></a>

En el siguiente diagrama se muestran los componentes de la arquitectura y el flujo de trabajo de esta aplicación.

![\[Flujo de trabajo para la gestión y notificación de errores mediante Step Functions, Amazon Bedrock y Amazon SNS.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/78f86c74-c9de-4562-adcc-105b87a77a54/images/d8eda499-ea1d-45e5-8a36-e04a44ad5c4b.png)


En el diagrama se muestra el flujo de trabajo automatizado para la gestión y notificación de errores en una máquina de estados de Step Functions:

1. El desarrollador inicia la ejecución de una máquina de estados.

1. La máquina de estados de Step Functions comienza a procesar sus estados. Hay dos resultados posibles:
   + (a) Si todos los estados se ejecutan correctamente, el flujo de trabajo pasa de manera directa a Amazon SNS para recibir una notificación de operación correcta por correo electrónico.
   + (b) Si se produce un error en algún estado, el flujo de trabajo pasa a la función de Lambda de gestión de errores.

1. En caso de error, sucede lo siguiente:
   + (a) Se desencadena la función de Lambda (controlador de errores). La función de Lambda extrae el mensaje de error de los datos del evento que le pasó la máquina de estados de Step Functions. A continuación, la función de Lambda prepara una petición según este mensaje de error y la envía a Amazon Bedrock. La petición solicita soluciones y sugerencias relacionadas con el error específico encontrado.
   + (b) Amazon Bedrock, que aloja el modelo de IA generativa, procesa la petición de entrada. (Este patrón utiliza el modelo de base Anthropic Claude 3 (FM), que es uno de los muchos FMs que admite Amazon Bedrock). El modelo de IA analiza el contexto del error. A continuación, el modelo genera una respuesta que puede incluir explicaciones de por qué se produjo el error, soluciones posibles para resolverlo y sugerencias para evitar cometer los mismos errores en el futuro.

     Amazon Bedrock devuelve su respuesta generada por IA a la función de Lambda. La función de Lambda procesa la respuesta y, posiblemente, la formatea o extrae información clave. A continuación, la función de Lambda envía la respuesta a la salida de la máquina de estados.

1. Tras la gestión del error o una ejecución correcta, el flujo de trabajo finaliza con la activación de Amazon SNS para que envíe una notificación por correo electrónico.

## Tools (Herramientas)
<a name="troubleshooting-states-in-aws-step-functions-tools"></a>

**Servicios de AWS**
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) es un servicio totalmente gestionado que pone a su disposición modelos básicos de alto rendimiento (FMs) de las principales empresas emergentes de IA y Amazon a través de una API unificada.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 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 Notification Service (Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)) le permite coordinar y administrar el intercambio de mensajes entre publicadores y clientes, incluidos los servidores web y las direcciones de correo electrónico.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)es un servicio de organización sin servidor que le ayuda a combinar AWS Lambda funciones y otras Servicios de AWS para crear aplicaciones esenciales para la empresa.

## Prácticas recomendadas
<a name="troubleshooting-states-in-aws-step-functions-best-practices"></a>
+ Dado que Amazon Bedrock es un modelo de IA generativo que aprende de los datos entrenados, también utiliza esos datos para entrenar y generar contexto. Como práctica recomendada, oculte la información privada que pueda provocar problemas de filtración de datos. 
+ Si bien la IA generativa puede proporcionar información valiosa, una persona debe supervisar las decisiones críticas relacionadas con la gestión de errores, sobre todo en los entornos de producción.

## Epics
<a name="troubleshooting-states-in-aws-step-functions-epics"></a>

### Creación de una máquina de estados para un flujo de trabajo
<a name="create-a-state-machine-for-your-workflow"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Crear una máquina de estado  | Para crear una máquina de estados que sea adecuada para el flujo de trabajo, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Crear una función de Lambda
<a name="create-a-lam-function"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Creación de una función de Lambda.  | Para crear una función de Lambda, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 
| Configure la lógica requerida en el código de Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html)<pre>client = boto3.client(<br />        service_name="bedrock-runtime", region_name="selected-region"<br />    )<br /><br />    # Invoke Claude 3 with the text prompt<br />    model_id = "your-model-id" # Select your Model ID, Based on the Model Id, Change the body format<br /><br />    try:<br />        response = client.invoke_model(<br />            modelId=model_id,<br />            body=json.dumps(<br />                {<br />                    "anthropic_version": "bedrock-2023-05-31",<br />                    "max_tokens": 1024,<br />                    "messages": [<br />                        {<br />                            "role": "user",<br />                            "content": [{"type": "text", "text": prompt}],<br />                        }<br />                    ],<br />                }<br />            ),<br />        )<br /></pre>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Integración de Step Functions con Lambda
<a name="integrate-sfn-with-lam"></a>


| Tarea | Descripción | Habilidades requeridas | 
| --- | --- | --- | 
| Configure Lambda para gestionar los errores en Step Functions. | Para configurar Step Functions a fin de gestionar los errores sin interrumpir el flujo de trabajo, haga lo siguiente:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

## Resolución de problemas
<a name="troubleshooting-states-in-aws-step-functions-troubleshooting"></a>


| Problema | Solución | 
| --- | --- | 
| Lambda no puede acceder a la API de Amazon Bedrock (no tiene autorización para realizar la operación) | Este error se produce cuando el rol de Lambda no tiene permiso para acceder a la API de Amazon Bedrock. Para resolver este problema, agregue la política `AmazonBedrockFullAccess` para el rol de Lambda. Para obtener más información, consulte [AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html)la *Guía de referencia de políticas AWS administradas*. | 
| Error del tiempo de espera de Lambda | A veces, es posible que tarde más de 30 segundos en generar una respuesta y enviarla, según la petición. Para resolver este problema, aumente el tiempo de configuración. Para más información, consulte [Configure Lambda function timeout](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html) en la *AWS Lambda Developer Guide*. | 

## Recursos relacionados
<a name="troubleshooting-states-in-aws-step-functions-resources"></a>
+ [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html)
+ [Amazon Bedrock API access](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html)
+ [Cree su primera función Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)
+ [Desarrollo de flujos de trabajo con Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/developing-workflows.html#development-run-debug)
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 