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: 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 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
ProfileIdal 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
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 falliti
-
Includi i dettagli dell'errore
ResultDataper 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
-
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 sotto Canali e comunicazioni, scegli Campagne in uscita.
-
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.
-
Scegli Aggiungi funzione Lambda. Verifica che l'ARN della funzione sia aggiunto sotto la voce Lambda Functions (Funzioni Lambda).
Importante
La procedura della console precedente aggiunge automaticamente la politica basata sulle risorse richiesta alla funzione Lambda. Se utilizzi la AWS CLI o l'SDK, puoi chiamare l'PutConnectInstanceIntegrationAPI con la lambda configurazione di integrazione. Questa API aggiunge automaticamente la policy basata sulle risorse richiesta alla 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 di policy che conceda al servizio l'autorizzazione principale a richiamare la tua funzione. connect-campaigns.amazonaws.com Facoltativamente, puoi aggiungere un Condition elemento con AWS:SourceAccount e limitare l'accesso AWS:SourceArn al tuo account e 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, consulta Using resource-based policies for Lambda nella Lambda Developer Guide.
Passaggio 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 Personalizzate per aprire la pagina delle proprietà.
-
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.