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 tua 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 specifica campagna
-
ActionId: L'identificatore dell'azione di flusso eseguita dalle campagne in uscita
-
CampaignName: Human-readable nome della campagna
Item
-
CustomerProfiles: serie di profili dei clienti da elaborare (raggruppati per garantire l'efficienza)
-
ProfileId: identificatore univoco per il profilo del cliente
-
CustomerData: stringa JSON del profilo cliente
-
IdempotencyToken: Token univoco per questa chiamata specifica per garantire un'elaborazione idempotente
Esempio di payload di richiesta
{ "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 funzione Lambda deve restituire una risposta JSON con la seguente struttura:
Struttura della risposta
{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }
Descrizioni dei campi
Item
-
CustomerProfiles: Matrice di risultati corrispondenti a ciascun profilo cliente nella richiesta
-
Id: deve corrispondere
ProfileIdal risultato della richiesta -
ResultData: oggetto JSON personalizzato contenente i risultati dell'elaborazione (opzionale)
Esempio di payload di risposta
{ "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
ResultDatasupera questo limite, la chiamata verrà contrassegnata come non valida
Requisiti di risposta
-
È necessario fornire una risposta per ogni
ProfileIdelemento incluso nella richiesta -
Le risposte mancanti verranno trattate come errori
-
Il
Idcampo nella risposta deve corrispondere esattamenteProfileIda quello della richiesta
Gestione errori
-
Se la funzione Lambda genera un'eccezione, tutti i profili del batch verranno contrassegnati come non riusciti
-
Includi i dettagli degli errori
ResultDataper scopi di debug
Tipo di chiamata
-
Tipo di chiamata: (sincrona)
REQUEST_RESPONSE -
La funzione dovrebbe restituire i risultati entro 30 secondi anziché essere elaborati in modo asincrono. Le risposte che richiedono più di 30 secondi comporteranno il fallimento dell'azione
Passaggio 2: concedi a Outbound Campaigns l'accesso alla tua funzione Lambda
-
Apri la console Amazon Connect all'indirizzo. https://console.aws.amazon.com/connect/
-
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.
-
Nel riquadro di navigazione in Canali e comunicazioni, scegli Campagne in uscita.
-
Nella sezione Configura azioni personalizzate, utilizza la casella a discesa delle funzioni Lambda per selezionare la funzione da aggiungere all'istanza delle campagne in uscita.
-
Scegli Aggiungi funzione Lambda. Verifica che l'ARN della funzione sia aggiunto sotto la voce Lambda Functions (Funzioni Lambda).
Importante
La precedente procedura della console aggiunge automaticamente la policy basata sulle risorse richiesta alla funzione Lambda. Se utilizzi la AWS CLI o l'SDK, puoi chiamare l'API con la configurazione dell'integrazione. PutConnectInstanceIntegration lambda Questa API aggiunge automaticamente la policy basata sulle risorse richiesta alla tua funzione Lambda, proprio come fa la console.
Se devi aggiungere manualmente la policy basata sulle risorse (ad esempio, per le chiamate tra più account), aggiungi una dichiarazione della politica che conceda al principale del servizio l'autorizzazione a richiamare la tua funzione. connect-campaigns.amazonaws.com Facoltativamente, puoi aggiungere un Condition elemento con AWS:SourceAccount e limitare l'accesso al tuo account e AWS:SourceArn all'istanza Connect Customer. Ti consigliamo di includere entrambe le condizioni. L'esempio seguente mostra la dichiarazione politica richiesta.
{ "Statement": [ { "Effect": "Allow", "Principal": { "Service": "connect-campaigns.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:region:account-id:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "account-id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:connect:region:account-id:instance/instance-id" } } } ] }
Per ulteriori informazioni sulle politiche basate sulle risorse, vedi Utilizzo delle politiche basate sulle risorse per Lambda nella Lambda Developer Guide.
Fase 3: Richiamare una Lambda da una campagna
-
Apri o crea un flusso di Journey.
-
Aggiungi un blocco di azioni personalizzato (nel gruppo Integrate) alla griglia. Collega i rami da e al blocco.
-
Scegli il titolo del blocco di azioni personalizzato per aprire la relativa pagina delle proprietà.
-
In Function 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 personalizzato, 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 restituita da Lambda.