Richiamo delle funzioni Lambda - Amazon Connect

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Richiamo delle funzioni Lambda

Fase 1: creare una funzione Lambda

Durante l'esecuzione della campagna, le campagne in uscita richiameranno la funzione Lambda con un batch di profili e si aspettano una risposta contenente i risultati per ciascuno.

Richiedi Payload

Quando la funzione Lambda viene richiamata, riceverà un payload JSON con la seguente struttura:

Struttura del payload

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }

Descrizioni dei campi

InvocationMetadata
  • CampaignContext: contiene metadati sull'esecuzione della campagna

  • CampaignId: identificatore univoco per la campagna

  • RunId: identificatore univoco per questa campagna specifica

  • ActionId: L'identificatore dell'azione di flusso eseguita dalle campagne in uscita

  • CampaignName: nome della campagna leggibile dall'uomo

Item
  • CustomerProfiles: Gamma di profili dei clienti da elaborare (raggruppati per garantire l'efficienza)

  • ProfileId: identificatore univoco per il profilo del cliente

  • CustomerData: stringa JSON del profilo del cliente

  • IdempotencyToken: Token unico per questa chiamata specifica per garantire un'elaborazione idempotente

Esempio: Request Payload

{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "campaign-12345", "RunId": "run-67890", "ActionId": "activity-abc123", "CampaignName": "Welcome Campaign" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "customer-001", "CustomerData": "{\"firstName\":\"John\",\"lastName\":\"Doe\",\"email\":\"john.doe@example.com\"}", "IdempotencyToken": "token-xyz789" }, { "ProfileId": "customer-002", "CustomerData": "{\"firstName\":\"Jane\",\"lastName\":\"Smith\",\"email\":\"jane.smith@example.com\"}", "IdempotencyToken": "token-abc456" } ] } }

Payload di risposta previsto

La tua funzione Lambda deve restituire una risposta JSON con la seguente struttura:

Struttura della risposta

{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }

Descrizioni dei campi

Item
  • CustomerProfiles: serie di risultati corrispondenti a ciascun profilo cliente nella richiesta

  • Id: deve corrispondere ProfileId al modulo della richiesta

  • ResultData: oggetto JSON personalizzato contenente i risultati dell'elaborazione (opzionale)

Esempio: Response Payload

{ "Items": { "CustomerProfiles": [ { "Id": "customer-001", "ResultData": { "recommendedProduct": "Premium Plan", "score": 85, "nextAction": "send_email" } }, { "Id": "customer-002", "ResultData": { "error": "Invalid customer data", "errorCode": "VALIDATION_ERROR" } } ] } }

Vincoli importanti

Limiti di dimensione del carico utile

  • Dimensione massima del payload di risposta: 32 KB per profilo cliente

  • Se si ResultData supera questo limite, la chiamata verrà contrassegnata come non valida

Requisiti di risposta

  • È necessario fornire una risposta per ogni ProfileId elemento incluso nella richiesta

  • Le risposte mancanti verranno trattate come errori

  • Il Id campo nella risposta deve corrispondere esattamente ProfileId a quello della richiesta

Gestione errori

  • Se la funzione Lambda genera un'eccezione, tutti i profili del batch verranno contrassegnati come falliti

  • Includi i dettagli dell'errore ResultData per scopi di debug

Tipo di chiamata

  • Tipo di invocazione: (sincrono) REQUEST_RESPONSE

  • La funzione dovrebbe restituire i risultati entro 30 secondi anziché essere elaborata in modo asincrono. Le risposte che richiedono più di 30 secondi comporteranno il fallimento dell'azione

Fase 2: concedere alle campagne in uscita l'accesso alla funzione Lambda

  1. Apri la console Amazon Connect all'indirizzo https://console.aws.amazon.com/connect/.

  2. Nella pagina delle istanze, scegli il nome dell'istanza nella colonna Alias istanza. Questo nome di istanza appare nell'URL che usi per accedere ad Amazon Connect.

  3. Nel riquadro di navigazione sotto Canali e comunicazioni, scegli Campagne in uscita.

  4. Nella sezione Configura azioni personalizzate, utilizza la casella a discesa Funzioni Lambda per selezionare la funzione da aggiungere all'istanza delle tue campagne in uscita.

  5. Scegli Aggiungi funzione Lambda. Verifica che l'ARN della funzione sia aggiunto sotto la voce Lambda Functions (Funzioni Lambda).

Passaggio 3: richiamare una Lambda da una campagna

  1. Apri o crea un flusso di Journey.

  2. Aggiungi un blocco di azioni personalizzato (nel gruppo Integrate) alla griglia. Collega i rami da e al blocco.

  3. Scegli il titolo del blocco di azioni Personalizzate per aprire la pagina delle proprietà.

  4. In Funzione ARN, scegli dall'elenco delle funzioni che hai aggiunto all'istanza delle tue campagne in uscita.

Fase 4: Consuma la risposta della funzione Lambda

Accesso diretto alle variabili

Per accedere a queste variabili direttamente in un blocco di flusso, aggiungi il blocco dopo il blocco di azioni personalizzate, quindi fai riferimento agli attributi come mostrato nell'esempio seguente:

RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score

Assicurati che il nome specificato per l'attributo source corrisponda al nome della chiave ResultData restituito da Lambda.