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 do Lambda com um lote de perfis e esperam uma resposta contendo resultados para cada um.
Carga útil da solicitação
Quando sua função do Lambda for invocada, ela receberá uma carga JSON com a seguinte estrutura:
Estrutura de 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
-
ActionId: O identificador da ação de fluxo que está sendo executada pelas 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 do 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 de carga
-
Tamanho máximo da carga 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 do 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 resultados em 30 segundos, em vez de processar de forma assíncrona. As respostas que demorarem mais de 30 segundos resultarão em falha na ação
Etapa 2: conceda às campanhas externas acesso à sua função do 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 de 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 do Lambda. Se você usa a AWS CLI ou o SDK, pode chamar a PutConnectInstanceIntegration API com a configuração de lambda integração. Essa API adiciona automaticamente a política baseada em recursos necessária à sua função do Lambda, assim como o console.
Se você precisar adicionar manualmente a política baseada em recursos (por exemplo, para invocações entre contas), adicione uma declaração de política que conceda ao principal do connect-campaigns.amazonaws.com serviço permissão para invocar sua função. Opcionalmente, você pode adicionar um Condition elemento com AWS:SourceAccount e restringir AWS:SourceArn o acesso à sua conta e à instância do 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 de viagem.
-
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ções personalizadas para abrir sua página de propriedades.
-
Em Função ARN, 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 retornado pelo Lambda.