Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Come posso risolvere i problemi delle funzioni Lambda in un flusso di contatto di Amazon Connect?
Desidero sapere perché la mia funzione AWS Lambda non viene invocata quando il mio flusso di contatto tenta di invocare la funzione in Amazon Connect.
Risoluzione
Verifica il messaggio di errore nel log del flusso di contatto
Completa le attività seguenti:
- Se non hai configurato il log del flusso di contatto, attiva la registrazione del flusso di contatto per la tua istanza Amazon Connect.
- Cerca nei log del flusso di contatto eventuali messaggi di errore. Ad esempio, per cercare un messaggio di errore in un intervallo di tempo specifico, esegui una query simile alla seguente:
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
In base al messaggio di errore, completa le attività seguenti.
Codice di stato: 403; Codice di errore: AccessDeniedException; RequestId: XXXXXXXX
Se la policy basata sulle risorse della tua funzione non concede ad Amazon Connect l'autorizzazione per invocare la funzione, potresti ricevere l'errore riportato sopra. Puoi esaminare la policy basata sulle risorse della tua funzione per vedere se include le autorizzazioni necessarie.
Per aggiungere le autorizzazioni richieste alla policy, usa uno dei metodi seguenti:
-
Usa la console Amazon Connect per aggiungere una funzione Lambda alla tua istanza. La funzione ottiene automaticamente le autorizzazioni per la risorsa quando viene aggiunta all'istanza.
-
Esegui il comando add-permission dell'interfaccia della linea di comando AWS (AWS CLI). Includi il principale connect.amazonaws.com e il nome della risorsa Amazon (ARN) della tua istanza Amazon Connect.
Esempio: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
-
Usa la console Lambda per creare una policy basata sulle risorse. Per ulteriori informazioni, consulta Managing permissions in AWS Lambda.
Esempio di policy basata sulle risorse:{ "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>" } } } ] }
"The Lambda Function Returned An Error" (La funzione Lambda ha restituito un errore)
Per scoprire cosa può aver causato l'errore precedente, controlla le metriche di Amazon CloudWatch per Lambda. Cerca i dati nelle metriche al relativo timestamp.
Se le metriche di errore non contengono dati al relativo timestamp, verifica la risposta della funzione.
Nota: è consigliabile testare l'output restituito dalla funzione Lambda. Verifica che la funzione Lambda restituisca l'output in un formato compatibile con Amazon Connect.
Per l'output, esamina le configurazioni seguenti:
- Il payload Lambda deve essere un valore diverso da NULL.
- Se il tipo di Convalida della risposta è STRING_MAP, l'output deve essere un oggetto flat di coppie chiave-valore e non può essere annidato. Se il tipo è JSON, l'oggetto deve essere un valore JSON valido e può includere un JSON annidato.
- Le coppie chiave-valore possono includere solo caratteri alfanumerici, il trattino o il carattere di sottolineatura.
- La dimensione dei dati restituiti deve essere inferiore a 32 KB di dati UTF-8.
- Verifica che il Timeout della funzione Lambda sia impostato su un valore sufficientemente alto. Il valore deve essere alto abbastanza da consentire alla funzione di invocare, elaborare i dati e restituire una risposta.
Quando usi il blocco di invocazione di una funzione Lambda nel flusso di contatto, il limite è inferiore a quello configurato come limite di Timeout massimo di Lambda. L'impostazione Timeout ha un valore predefinito di 3 secondi e un valore massimo di 8 secondi.
Ad esempio, supponiamo che la tua funzione Lambda sia configurata con un valore di timeout di 15 secondi e che venga eseguita per 10 secondi. Anche se non ricevi un errore di timeout, il flusso di contatto indirizza l'esecuzione al ramo di errore perché il valore di Timeout massimo consentito è 8 secondi.
Per scoprire il tempo richiesto per l'invocazione della funzione, esamina la metrica Duration della funzione in Amazon CloudWatch. Quindi aggiorna il valore di timeout dell'invocazione della funzione Lambda e delle funzioni Lambda, come necessario.
Nota: per includere nel flusso di contatto funzioni Lambda che richiedono più di otto secondi per essere invocate, usa le funzioni Lambda asincrone con Amazon Connect. Se invochi più funzioni Lambda, la durata della sequenza di funzioni deve essere uguale o inferiore a 20 secondi.
Se le metriche di errore Lambda contengono dati al relativo timestamp, completa i passaggi descritti in Come faccio a risolvere i problemi relativi alla funzione Lambda?
Informazioni correlate

Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata 4 anni fa
- AWS UFFICIALEAggiornata 2 anni fa