Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Como soluciono falhas da função do Lambda em um fluxo de contato do Amazon Connect?
Quero saber por que minha função do AWS Lambda não é invocada quando meu fluxo de contato tenta invocar a função no Amazon Connect.
Resolução
Verifique a mensagem de erro no log do fluxo de contato
Realize as seguintes tarefas:
- Se você não configurou o log do fluxo de contato, ative o log do fluxo de contato para sua instância do Amazon Connect.
- Pesquise seus logs de fluxo de contato em busca de mensagens de erro. Por exemplo, para pesquisar uma mensagem de erro em um período específico, execute uma consulta semelhante à seguinte:
fields @timestamp, @message | filter @message like 'Results' | parse @message '"Results":"*","ContactId":"*","ContactFlowId":"*","ContactFlowName":"*","ContactFlowModuleType":"*"' as Results, ContactId, ContactFlowId, ContactFlowName, BlockType | filter Results like 'rror' or Results like 'ailed' or Results like 'imeout' or Results like 'xception' or Results like 'No prompt provided' or Results like 'Instance has reached concurrent Lambda thread access limit' or Results like 'nsupported' or Results like 'nvalid' or Results like 'not found' or Results like 'execution limit reached' | filter BlockType = 'InvokeExternalResource' | sort @timestamp asc | display Timestamp, Results, ContactId, ContactFlowId, ContactFlowName, BlockType
Com base na mensagem de erro, realize as tarefas a seguir.
Código de status: 403; código de erro: AccessDeniedException; RequestId: XXXXXXXX
Se a política baseada em recursos da sua função não conceder permissão ao Amazon Connect para invocar a função, você poderá receber o erro anterior. Você pode revisar a política baseada em recursos da sua função para ver se a política inclui as permissões necessárias.
Para adicionar as permissões necessárias à política, use um dos seguintes métodos:
-
Use o console do Amazon Connect para Adicionar uma função do Lambda à sua instância. A função obtém permissões de recursos automaticamente quando adicionada à instância.
-
Execute o comando add-permission da AWS Command Line Interface (AWS CLI). Inclua a entidade principal do connect.amazonaws.com e o Amazon Resource Name (ARN) da sua instância do Amazon Connect.
Exemplo:aws lambda add-permission --function-name function-name --action lambda:InvokeFunction --statement-id connect-to-lambda --principal connect.amazonaws.com --source-arn connect-instance-arn
-
use o console do Lambda para criar uma política baseada em recursos. Para obter mais informações, consulte Gerenciamento de permissões no Lambda.
Exemplo de política baseada em recursos:{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "100", "Effect": "Allow", "Principal": { "Service": "connect.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "<Qualified AWS Lambda ARN>", "Condition": { "ArnLike": { "AWS:SourceArn": "<Amazon Connect ARN>" } } } ] }
“A função Lambda retornou um erro”
Para descobrir o que pode ter causado o erro anterior, verifique as métricas do Amazon CloudWatch para Lambda. Analise as métricas dos dados no carimbo de data/hora relacionado.
Se as métricas de erro não contiverem dados no carimbo de data/hora relacionado, verifique a resposta da sua função.
Observação: é uma prática recomendada testar a saída retornada da sua função do Lambda. Confirme se a função Lambda retorna a saída em um formato compatível com o Amazon Connect.
Para a saída, revise as seguintes configurações:
- O payload do Lambda deve ter um valor diferente de NULL.
- Se o tipo de Validação de resposta for um STRING\ _MAP, a saída deverá ser um objeto plano de pares de chave-valor e não poderá ser aninhada. Se o tipo for JSON, o objeto deverá ter um valor JSON válido e poderá incluir um JSON aninhado.
- Os pares de chave-valor podem incluir somente caracteres alfanuméricos, o caractere travessão ou o caractere sublinhado.
- Os dados retornados devem totalizar menos de 32 KB de dados UTF-8.
- Verifique se a configuração Tempo limite para sua função do Lambda está definida como um valor alto o suficiente. O valor deve ser alto o suficiente para permitir que sua função invoque, processe dados e retorne uma resposta.
Quando você usa a função invocar função do Lambda no fluxo de contato, o limite é menor do que o configurado no limite máximo de tempo limite do Lambda. A configuração Tempo limite tem um valor padrão de 3 segundos e um valor máximo de 8 segundos.
Por exemplo, suponha que sua função do Lambda esteja configurada com um valor de tempo limite de 15 segundos e seu Lambda seja executado por 10 segundos. Embora você não receba um erro de tempo limite, o fluxo de contato encaminha a execução para a ramificação de erro porque o valor máximo de Tempo limite permitido é de 8 segundos.
Para descobrir quanto tempo sua função leva para ser invocada, revise as métricas de Duração da função no Amazon CloudWatch. Em seguida, atualize o valor do tempo limite de invocar função do Lambda e das funções do Lambda, conforme necessário.
Observação: para incluir funções do Lambda em seu fluxo de contato que levam mais de oito segundos para serem invocadas, use funções do Lambda assíncronas com o Amazon Connect. Se você invocar várias funções do Lambda, a duração da sequência da função deverá ser de 20 segundos ou menos.
Se as métricas de Erro do Lambda contiverem dados na data e hora relacionadas, realize as etapas em Como soluciono falhas da função Lambda?
Informações relacionadas

Conteúdo relevante
- feita há 25 dias
- feita há 5 meses
- feita há um dia
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há 2 anos