Uso de AWS Lambda con Amazon SNS - AWS Lambda

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.

Uso de AWS Lambda con Amazon SNS

Puede utilizar una función de Lambda para procesar notificaciones de Amazon Simple Notification Service (Amazon SNS). Amazon SNS admite funciones de Lambda como destino para los mensajes enviados a un tema. Puede suscribir la función a temas de la misma cuenta o de otras cuentas de AWS.

Amazon SNS invoca la función de forma asíncrona con un evento que contiene un mensaje y metadatos.

ejemplo Evento de mensajes de Amazon SNS
{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-1:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "SigningCertUrl": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", "MessageAttributes": { "Test": { "Type": "String", "Value": "TestString" }, "TestBinary": { "Type": "Binary", "Value": "TestBinary" } }, "Type": "Notification", "UnsubscribeUrl": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-1:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }

Para la invocación asíncrona, Lambda pone en cola el mensaje y administra los reintentos. Si Amazon SNS no puede conectar con Lambda o se rechaza el mensaje, Amazon SNS lo vuelve a intentar a intervalos cada vez mayores durante varias horas. Para conocer los detalles, consulte Fiabilidad en las preguntas frecuentes de Amazon SNS.

aviso

Las asignaciones de orígenes de eventos de Lambda procesan cada evento al menos una vez y puede producirse un procesamiento duplicado de lotes. Para evitar posibles problemas relacionados con la duplicación de eventos, le recomendamos encarecidamente que haga que el código de la función sea idempotente. Para obtener más información, consulte ¿Cómo puedo hacer que mi función de Lambda sea idempotente? en el Centro de conocimientos de AWS.

Para realizar entregas de Amazon SNS una cuenta cruzada a Lambda, debe autorizar a Amazon SNS para invocar su función de Lambda. A su vez, Amazon SNS debe permitir que la cuenta AWS con la función de Lambda se suscriba al tema de Amazon SNS. Por ejemplo, si el tema de Amazon SNS está en la cuenta A y la función de Lambda está en la cuenta B, cada cuenta debe conceder permisos a la otra para que acceda a sus recursos. Dado que no todas las opciones para configurar permisos entre cuentas están disponibles en la AWS Management Console, debe usar el AWS Command Line Interface (AWS CLI) para la configuración.

Para obtener más información, consulte Invocación de funciones de Lambda en la Guía para desarrolladores de Amazon Simple Notification Service.

Tipos de entrada para eventos de Amazon SNS

Para conocer ejemplos de tipos de entrada para Amazon SNS en Java, .NET y Go, consulte lo siguiente en el repositorio de GitHub de AWS: