

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

*Aniket Kurzadkar e Sangam Kushwaha, Amazon Web Services*

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

AWS Step Functions os recursos de tratamento de erros podem ajudar você a ver um erro que ocorre durante um estado em um [fluxo de trabalho](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html), mas ainda pode ser um desafio encontrar a causa raiz de um erro e depurá-lo. 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
<a name="troubleshooting-states-in-aws-step-functions-prereqs"></a>

**Pré-requisitos **
+ Um ativo Conta da AWS
+ Noções básicas sobre o [AWS Step Functions e os fluxos de trabalho](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-statemachines.html)
+ [Conectividade com a API](https://docs.aws.amazon.com/bedrock/latest/userguide/getting-started-api.html) 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 a solicitação criada por, AWS Lambda que é posteriormente avaliada pelo Amazon Bedrock.
+ Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte [AWS Services by Region](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Para endpoints específicos, consulte [Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) e clique no link correspondente ao serviço desejado.

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

O diagrama a seguir mostra o fluxo de trabalho e os componentes da arquitetura desse padrão.

![\[Fluxo de trabalho para tratamento de erros e envio de notificações usando o Step Functions, o Amazon Bedrock e o Amazon SNS.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/78f86c74-c9de-4562-adcc-105b87a77a54/images/d8eda499-ea1d-45e5-8a36-e04a44ad5c4b.png)


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:

1. O desenvolvedor inicia a execução de uma máquina de estado.

1. 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.

1. 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. (Esse padrão usa o modelo básico Anthropic Claude 3 (FM), que é um dos muitos que o FMs Amazon Bedrock suporta.) 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.

1. 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
<a name="troubleshooting-states-in-aws-step-functions-tools"></a>

**Serviços da AWS**
+ [O Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html) é um serviço totalmente gerenciado que disponibiliza modelos básicos de alto desempenho (FMs) das principais startups de IA e da Amazon para seu uso por meio de uma API unificada.
+ O [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) é 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 Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) ajuda você a coordenar e gerenciar a troca de mensagens entre publicadores e clientes, incluindo servidores web e endereços de e-mail.
+ [AWS Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html)é um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.

## Práticas recomendadas
<a name="troubleshooting-states-in-aws-step-functions-best-practices"></a>
+ 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
<a name="troubleshooting-states-in-aws-step-functions-epics"></a>

### Criação de uma máquina de estado para o fluxo de trabalho
<a name="create-a-state-machine-for-your-workflow"></a>


| Tarefa | Description | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Criar uma função do Lambda
<a name="create-a-lam-function"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie uma função do Lambda.  | Para criar uma função do Lambda, realize as seguintes etapas:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 
| Configure a lógica necessária no código do Lambda. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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/pt_br/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

### Integração do Step Functions com o Lambda
<a name="integrate-sfn-with-lam"></a>


| Tarefa | Description | 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/troubleshooting-states-in-aws-step-functions.html) | AWS DevOps | 

## Solução de problemas
<a name="troubleshooting-states-in-aws-step-functions-troubleshooting"></a>


| 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 `AmazonBedrockFullAccess` ao perfil do Lambda. Para obter mais informações, consulte [AmazonBedrockFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html)o *Guia de referência de políticas AWS gerenciadas*. | 
| 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](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonBedrockFullAccess.html) no *Guia do desenvolvedor do AWS Lambda *. | 

## 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)
+ [Crie sua primeira função Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)
+ [Desenvolvendo fluxos de trabalho com 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) 