Configuração de um processador de canais - SDK do Amazon Chime

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á.

Configuração de um processador de canais

Para começar a usar fluxos de canais, primeiro crie uma função do Lambda do processador para lidar com o pré-processamento do seu caso de uso. Por exemplo, você pode atualizar o conteúdo da mensagem ou metadados, negar mensagens e evitar que sejam enviadas ou deixar a mensagem original passar.

Pré-requisitos
  • A função Lambda deve estar na mesma AWS conta e nas mesmas AWS regiões do. AppInstance

Conceder permissões de invocação

É necessário dar ao serviço de mensagens do SDK do Amazon Chime a permissão para invocar seu recurso do Lambda. Para obter mais informações sobre permissões, consulte Usar políticas baseadas em recursos para o AWS Lambda. Por exemplo: .

Entidade principal: "messaging.chime.amazonaws.com"

Ação: lambda: InvokeFunction

Effect (Efeito): permitir

AWSSourceAccount: Seu AWS AccountId.

AWS: SourceArn: "arn:aws:chime:region:AWS AccountId: appInstance/"

nota

Você pode fornecer um ID da instância de aplicativo específico para invocar seu processador ou usar um curinga para permitir que todas as instâncias do aplicativo SDK do Amazon Chime em uma conta invoquem seu processador.

Como conceder permissões de retorno de chamada

Você também precisa permitir que as funções do Lambda do processador chamem a API ChannelFlowCallback. Para obter informações sobre como fazer isso, consulte Executar função do AWS Lambda no Guia do desenvolvedor do AWS Lambda .

Você pode adicionar uma política em linha à função de execução da sua função do Lambda. Este exemplo permite que o processador invoque o ChannelFlowCallback API.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "chime:ChannelFlowCallback" ], "Resource": [ "arn:aws:chime:Region:AwsAccountId:appInstance/*" ] } ] }
nota

Siga as melhores práticas para funções do Lambda. Para obter mais informações, consulte esses tópicos:

Como invocar funções do Lambda do processador

Quando um usuário envia uma mensagem, a solicitação de entrada a seguir invoca a função do Lambda do processador.

{ "EventType": "string" "CallbackId": "string" "ChannelMessage": { "MessageId": "string", "ChannelArn": "string", "Content": "string", "Metadata": "string", "Sender":{ "Arn": "string", "Name": "string" }, "Persistence": "string", "LastEditedTimestamp": "string", "Type": "string", "CreatedTimestamp": "string", } }
EventType

O evento que está sendo enviado ao processador. O valor é uma constante CHANNEL_MESSAGE_EVENT.

CallbackId

O token usado ao chamar a API ChannelFlowCallback do processador.

ChannelMessage

ChannelArnO ARN do canal

Conteúdo   O conteúdo da mensagem a ser processada

CreatedTimestampA hora em que a mensagem foi criada

LastEditedTimestampA hora em que uma mensagem foi editada

MessageIdO identificador da mensagem

Metadata   Metadados da mensagem a serem processados

Persistência   Booliano que controla se a mensagem é persistida no back-end. Valores Válidos: PERSISTENT | NON_PERSISTENT

Remetente   O remetente da mensagem. Tipo: um identityobjeto.

Tipo O tipo de mensagem. ChannelFlowsuporta apenas os tipos de STANDARD mensagem. Valor válido: STANDARD

A função do processador determina o seguinte sobre cada mensagem.

  • Se deve atualizar o conteúdo da mensagem, os metadados ou ambos

  • Se deve negar uma mensagem

  • Se uma mensagem deve ser deixada inalterada

Quando o processamento termina, a função do Lambda do processador envia o resultado de volta ao serviço de mensagens do SDK do Amazon Chime para que a mensagem possa ser enviada a todos os destinatários. O status da mensagem é marcado PENDING até que a função do Lambda do processador retorne os resultados. A função do Lambda do processador tem 48 horas para enviar os resultados de volta. Não garantimos a entrega de mensagens depois disso, e a API ChannelFlowCallback emite uma mensagem de erro de exceção proibida. Para devolver os resultados, invoque a ChannelFlowCallback API.