

# Testes de funções duráveis do Lambda
<a name="durable-testing"></a>

Use os SDKs de testes de execução durável para executar e inspecionar as execuções localmente e na nuvem. Para ter informações sobre testes de autoria, declarações, executor na nuvem, integração com a CLI do SAM e exemplos completos, consulte [Teste](https://docs.aws.amazon.com/durable-execution/testing/) no Guia do desenvolvedor do SDK de execução durável da AWS.

## Permissões do IAM para testes na nuvem
<a name="durable-cloud-testing"></a>

Quando você usa o executor na nuvem ou `sam remote invoke` para testar uma função durável implantada, a entidade principal da chamada precisa de permissão para invocar a função e ler seu histórico de execuções. Anexe as permissões a seguir ao chamador de teste:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction",
                "lambda:GetDurableExecution",
                "lambda:GetDurableExecutionHistory"
            ],
            "Resource": [
                "arn:aws:lambda:region:account-id:function:function-name",
                "arn:aws:lambda:region:account-id:function:function-name:*"
            ]
        }
    ]
}
```

Substitua {{region}}, {{account-id}} e {{function-name}} pelos seus valores.

## Falhas de depuração
<a name="durable-testing-debugging"></a>

Quando os testes falharem, inspecione o resultado da execução para entender o que houve de errado. Verifique o status da execução para ver se a função foi concluída com êxito, falhou ou atingiu o tempo limite. Leia as mensagens de erro para entender a causa da falha.

Inspecione os resultados individuais da operação para descobrir onde o comportamento divergiu das expectativas. Verifique os resultados das etapas para ver quais valores foram produzidos. Verifique a ordem das operações para confirmar as operações executadas na sequência esperada. Conte as operações para garantir que o número certo de etapas, esperas e retornos de chamada tenham sido criados.

Os problemas comuns incluem código não determinístico que produza resultados diferentes nas reproduções, estado compartilhado por meio de variáveis globais que sejam interrompidas durante a reprodução e operações ausentes devido a erros lógicos condicionais. Use depuradores e logs padrão para analisar o código da função e monitorar o fluxo de execução.

Para testes de nuvem, inspecione o histórico de execução no CloudWatch Logs para ver os logs detalhados da operação. Use o rastreamento para acompanhar o fluxo de execução nos serviços e identificar gargalos.