As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Invocar funções do Lambda
Etapa 1: criar uma função do Lambda
Durante a execução da campanha, as campanhas externas invocarão sua função Lambda com um lote de perfis e esperam uma resposta contendo resultados para cada um.
Solicitar carga
Quando sua função Lambda for invocada, ela receberá uma carga JSON com a seguinte estrutura:
Estrutura da carga útil
{ "InvocationMetadata": { "CampaignContext": { "CampaignId": "string", "RunId": "string", "ActionId": "string", "CampaignName": "string" } }, "Items": { "CustomerProfiles": [ { "ProfileId": "string", "CustomerData": "string", "IdempotencyToken": "string" } ] } }
Descrições de campo
InvocationMetadata
-
CampaignContext: contém metadados sobre a execução da campanha
-
CampaignId: Identificador exclusivo para a campanha
-
RunId: identificador exclusivo para essa campanha específica veiculada
-
ActionId: O identificador da ação de fluxo que está sendo executada por campanhas externas
-
CampaignName: Human-readable nome da campanha
Itens
-
CustomerProfiles: Conjunto de perfis de clientes para processar (agrupados para maior eficiência)
-
ProfileId: Identificador exclusivo para o perfil do cliente
-
CustomerData: string JSON do perfil do cliente
-
IdempotencyToken: token exclusivo para essa invocação específica para garantir um processamento idempotente
Exemplo de carga útil de solicitação
{ "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" } ] } }
Carga útil de resposta esperada
Sua função Lambda deve retornar uma resposta JSON com a seguinte estrutura:
Estrutura de respostas
{ "Items": { "CustomerProfiles": [ { "Id": "string", "ResultData": {} } ] } }
Descrições de campo
Itens
-
CustomerProfiles: matriz de resultados correspondente a cada perfil de cliente na solicitação
-
ID: deve corresponder ao
ProfileIdda solicitação -
ResultData: objeto JSON personalizado contendo seus resultados de processamento (opcional)
Exemplo de carga útil de resposta
{ "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" } } ] } }
Restrições importantes
Limites de tamanho da carga
-
Tamanho máximo da carga útil de resposta: 32 KB por perfil de cliente
-
Se você
ResultDataexceder esse limite, a invocação será marcada como inválida
Requisitos de resposta
-
Você deve fornecer uma resposta para cada item
ProfileIdincluído na solicitação -
As respostas ausentes serão tratadas como erros
-
O
Idcampo na resposta deve corresponder exatamente aoProfileIdda solicitação
Tratamento de erros
-
Se sua função Lambda gerar uma exceção, todos os perfis no lote serão marcados como falhados
-
Inclua detalhes do erro
ResultDatapara fins de depuração
Tipo de invocação
-
Tipo de invocação:
REQUEST_RESPONSE(síncrono) -
Sua função deve retornar os resultados em 30 segundos, em vez de ser processada de forma assíncrona. Respostas que demoram mais de 30 segundos resultarão em falha na ação
Etapa 2: conceder às campanhas externas acesso à sua função Lambda
-
Abra o console do Amazon Connect em https://console.aws.amazon.com/connect/
. -
Na página Instâncias, escolha o nome da instância na coluna Alias da instância. Esse nome da instância aparece no URL que você usa para acessar o Amazon Connect.
-
No painel de navegação, em Canais e comunicações, escolha Campanhas externas.
-
Na seção Configurar ações personalizadas, use a caixa suspensa Funções do Lambda para selecionar a função a ser adicionada à sua instância de campanhas externas.
-
Escolha Adicionar função do Lambda. Confirme se o ARN da função é adicionado em Lambda Functions (Funções Lambda).
Importante
O procedimento anterior do console adiciona automaticamente a política baseada em recursos necessária à função Lambda. Se você usa a AWS CLI ou o SDK, pode chamar a PutConnectInstanceIntegrationAPI com a lambda configuração de integração. Essa API adiciona automaticamente a política baseada em recursos necessária à sua função Lambda, assim como o console faz.
Se você precisar adicionar a política baseada em recursos manualmente (por exemplo, para invocações entre contas), adicione uma declaração de política que conceda ao responsável pelo connect-campaigns.amazonaws.com serviço permissão para invocar sua função. Opcionalmente, você pode adicionar um Condition elemento com AWS:SourceAccount e AWS:SourceArn para restringir o acesso à sua conta e à instância Connect Customer. Recomendamos incluir as duas condições. O exemplo a seguir mostra a declaração de política necessária.
{ "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" } } } ] }
Para obter mais informações sobre políticas baseadas em recursos, consulte Usando políticas baseadas em recursos para o Lambda no Guia do desenvolvedor do Lambda.
Etapa 3: invocar um Lambda a partir de uma campanha
-
Abra ou crie um fluxo do Journey.
-
Adicione um bloco de ação personalizado (no grupo Integrar) à grade. Conecte as ramificações ao bloco e vice-versa.
-
Escolha o título do bloco de ação personalizada para abrir sua página de propriedades.
-
Em ARN da função, escolha na lista de funções que você adicionou à sua instância de campanhas externas.
Etapa 4: Consumir a resposta da função Lambda
Acessar variáveis diretamente
Para acessar essas variáveis diretamente em um bloco de fluxo, adicione o bloco após o bloco de ação personalizada e, em seguida, faça referência aos atributos conforme mostrado no exemplo a seguir:
RecommendedProduct - $.LambdaInvocation.ResultData.recommendedProduct Score - $.LambdaInvocation.ResultData.score
Certifique-se de que o nome especificado para o atributo de origem corresponda ao nome da chave ResultData retornada do Lambda.