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.