Configuración de un procesador de canales - Amazon Chime SDK

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuración de un procesador de canales

Para empezar a utilizar los flujos de canal, primero debe crear una función de Lambda de procesador para gestionar el preprocesamiento de su caso de uso. Por ejemplo, puede actualizar el contenido de los mensajes o los metadatos, denegar mensajes y evitar que se envíen o dejar pasar el mensaje original.

Requisitos previos
  • La función Lambda debe estar en la misma AWS cuenta y en las mismas AWS regiones que la. AppInstance

Concesión de permisos de invocación

Debe dar permiso al servicio de mensajería de Amazon Chime SDK para invocar su recurso Lambda. Para obtener más información sobre los permisos, consulte Uso de políticas basadas en recursos para AWS Lambda. Por ejemplo:

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

Acción: lambda: InvokeFunction

Efecto: Permitir

AWSSourceAccount: Tu AWS AccountId.

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

nota

Puede proporcionar un ID de instancia de aplicación específico para invocar su procesador o usar un comodín para permitir que todas las instancias de aplicaciones de Amazon Chime SDK de una cuenta invoquen su procesador.

Otorgar permisos de devolución de llamadas

También debe permitir que las funciones de Lambda de su procesador llamen a la API de ChannelFlowCallback. Para obtener información sobre cómo hacerlo, consulte el rol de ejecución de AWS Lambda en la guía para desarrolladores de AWS Lambda .

Puede añadir una política en línea al rol de ejecución de la función de Lambda. Este ejemplo permite al procesador invocar el ChannelFlowCallback API.

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

Siga las prácticas recomendadas para las funciones de Lambda. Para obtener más información, consulte los siguientes temas:

Invocación de funciones de Lambda de procesador

Cuando un usuario envía un mensaje, la siguiente solicitud de entrada invoca la función de Lambda del procesador.

{ "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

El evento se envía al procesador. El valor es una constante CHANNEL_MESSAGE_EVENT.

CallbackId

El token utilizado al llamar a la API de ChannelFlowCallback desde el procesador.

ChannelMessage

ChannelArnEl ARN del canal

Content: contenido del mensaje que se va a procesar

CreatedTimestampEl momento en el que se creó el mensaje

LastEditedTimestampHora a la que se editó un mensaje

MessageIdEl identificador del mensaje

Metadata: los metadatos del mensaje que se van a procesar

Persistence: El Booleano que controla si el mensaje se conserva en el back-end. Valores válidos: PERSISTENT | NON_PERSISTENT

Sender: El remitente del mensaje. Tipo: un identityobjeto.

Escriba El tipo de mensaje. ChannelFlowsolo admite los tipos de STANDARD mensajes. Valor válido: STANDARD

La función del procesador determina lo siguiente acerca de cada mensaje.

  • Si se debe actualizar el contenido del mensaje, los metadatos o ambos

  • Si se debe denegar un mensaje

  • Si se debe dejar un mensaje sin cambios

Cuando finaliza el procesamiento, la función de Lambda del procesador devuelve el resultado al servicio de mensajería de Amazon Chime SDK para que el mensaje se pueda enviar a todos los destinatarios. El estado del mensaje se marca como PENDING hasta que la función de Lambda del procesador devuelva los resultados. La función de Lambda del procesador dispone de 48 horas para enviar los resultados. No garantizamos la entrega de los mensajes después de esa fecha y la API de ChannelFlowCallback muestra un mensaje de error de excepción prohibida. Para devolver los resultados, invoca la ChannelFlowCallback API.