Uso de Lambda con Amazon SNS - AWS Lambda

Uso de Lambda con Amazon SNS

Puede utilizar una función Lambda para procesar notificaciones de Amazon Simple Notification Service (Amazon SNS). Amazon SNS admite funciones 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 mensaje de Amazon SNS

{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-2: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-2.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-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-2:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }

Para la invocación asíncrona, Lambda pone en cola el mensaje y gestiona 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.

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 Lambda se suscriba al tema 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 Consola de administración de AWS, debe usar el AWS Command Line Interface (AWS CLI) para la configuración.

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

Tipos de entrada para eventos 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: