Solução de problemas de estados no AWS Step Functions usando o Amazon Bedrock
Aniket Kurzadkar e Sangam Kushwaha, Amazon Web Services
Resumo
As funcionalidades de tratamento de erros do AWS Step Functions podem ajudar você a identificar um erro que ocorre durante um estado em um fluxo de trabalho, porém ainda pode ser um desafio descobrir a causa raiz e fazer a depuração. Este padrão aborda esse desafio e mostra como o Amazon Bedrock pode ajudar você a solucionar erros que ocorrem durante estados no Step Functions.
O Step Functions disponibiliza orquestração de fluxos de trabalho, o que ajuda os desenvolvedores a automatizar processos com mais facilidade. Além disso, o Step Functions fornece funcionalidades de tratamento de erros que proporcionam os seguintes benefícios:
Os desenvolvedores podem criar aplicações mais resilientes, que não falham completamente quando ocorre algum problema.
Os fluxos de trabalho podem usar lógica condicional para lidar com cada tipo de erro de forma diferenciada.
O sistema é capaz de tentar executar novamente operações que falharam automaticamente, possivelmente adotando um mecanismo de recuo exponencial.
Caminhos de execução alternativos podem ser definidos para cenários de erro, permitindo que o fluxo de trabalho se adapte e continue o processamento.
Quando ocorre um erro em um fluxo de trabalho do Step Functions, este padrão mostra como a mensagem de erro e o contexto podem ser enviados para um modelo de base (FM), como o Claude 3, que é compatível com o Step Functions. O FM pode analisar o erro, categorizá-lo e sugerir possíveis etapas de correção.
Pré-requisitos e limitações
Pré-requisitos
Uma Conta da AWS ativa
Noções básicas sobre o AWS Step Functions e os fluxos de trabalho
Conectividade com a API do Amazon Bedrock
Limitações
Você pode usar a abordagem deste padrão para vários Serviços da AWS. No entanto, os resultados podem variar de acordo com o prompt criado pelo AWS Lambda, que é posteriormente avaliado pelo Amazon Bedrock.
Alguns Serviços da AWS não estão disponíveis em todas as Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region
. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.
Arquitetura
O diagrama a seguir mostra o fluxo de trabalho e os componentes da arquitetura desse padrão.

O diagrama apresenta o fluxo de trabalho automatizado para tratamento de erros e envio de notificações em uma máquina de estado do Step Functions:
O desenvolvedor inicia a execução de uma máquina de estado.
A máquina de estado do Step Functions começa a processar os estados. Existem dois resultados possíveis:
(a) Se todos os estados forem executados com êxito, o fluxo de trabalho segue diretamente para o Amazon SNS para envio de uma notificação de sucesso por e-mail.
(b) Se algum estado falhar, o fluxo de trabalho é direcionado para a função do Lambda responsável pelo tratamento de erros.
Em caso de erros, o seguinte processo é executado:
(a) A função do Lambda (responsável pelo tratamento de erros) é acionada. A função do Lambda extrai a mensagem de erro contida nos dados do evento transmitidos pela máquina de estado do Step Functions. Posteriormente, a função do Lambda prepara um prompt fundamentado na mensagem de erro e o encaminha ao Amazon Bedrock. O prompt solicita soluções e sugestões relacionadas ao erro específico identificado.
(b) O Amazon Bedrock, que hospeda o modelo de IA generativa, realiza o processamento do prompt de entrada. (Este padrão faz uso do modelo de base (FM) Anthropic Claude 3, que é um entre os diversos FMs compatíveis com o Amazon Bedrock.) O modelo de IA analisa o contexto do erro. Em seguida, o modelo gera uma resposta que pode incluir explicações sobre a razão pela qual o erro ocorreu, soluções potenciais para resolvê-lo e sugestões para evitar a recorrência do mesmo erro no futuro.
O Amazon Bedrock retorna a resposta gerada por IA para a função do Lambda. A função do Lambda realiza o processamento da resposta, com potencial formatação ou extração de informações importantes. Posteriormente, a função do Lambda envia a resposta para a saída da máquina de estado.
Após o tratamento de erros ou a execução com êxito, o fluxo de trabalho é concluído acionando o Amazon SNS para enviar uma notificação por e-mail.
Ferramentas
Serviços da AWS
O Amazon Bedrock é um serviço totalmente gerenciado que disponibiliza modelos de base (FMs) de alta performance, provenientes de startups líderes em IA e da própria Amazon, por meio de uma API unificada.
AWS Lambda O é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.
O Amazon Simple Notification Service (Amazon SNS) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
O AWS Step Functions é um serviço de orquestração com tecnologia sem servidor que auxilia na combinação de funções do AWS Lambda e outros Serviços da AWS para desenvolver aplicações de grande importância para o negócio.
Práticas recomendadas
Considerando que o Amazon Bedrock é um modelo de IA generativa que aprende com base em dados treinados, ele também utiliza esses dados para treinamento e geração de contexto. Como uma prática recomendada, oculte qualquer informação privada que possa causar problemas de vazamento de dados.
Embora a IA generativa possa fornecer insights valiosos, decisões críticas de tratamento de erros ainda devem contar com supervisão humana, especialmente em ambientes de produção.
Épicos
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Criar uma máquina de estado do . | Para criar uma máquina de estado adequada ao seu fluxo de trabalho, realize as seguintes etapas:
| AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Crie uma função do Lambda. | Para criar uma função do Lambda, realize as seguintes etapas:
| AWS DevOps |
Configure a lógica necessária no código do Lambda. |
| AWS DevOps |
| Tarefa | Descrição | Habilidades necessárias |
|---|---|---|
Configure o Lambda para tratar erros no Step Functions. | Para configurar o Step Functions de forma a tratar erros sem interromper o fluxo de trabalho, realize as seguintes etapas:
| AWS DevOps |
Solução de problemas
| Problema | Solução |
|---|---|
O Lambda não tem permissão para acessar a API do Amazon Bedrock (ação não autorizada) | Este erro ocorre quando o perfil do Lambda não tem permissão para acessar a API do Amazon Bedrock. Para resolver esse problema, adicione a política |
Erro de tempo limite do Lambda | Em alguns casos, a geração e o envio da resposta podem demorar mais de 30 segundos, dependendo do prompt. Para resolver esse problema, aumente o tempo de configuração. Para obter mais informações, consulte Configurar tempo limite da função do Lambda no Guia do desenvolvedor do AWS Lambda. |