topic sns services precio example cost aws amazon-web-services aws-lambda amazon-sns

amazon-web-services - services - sns amazon example



¿Puede publicar un mensaje en un tema SNS utilizando una función AWS Lambda respaldada por node.js? (2)

¿Puede publicar un mensaje en un tema SNS utilizando una función AWS Lambda respaldada por node.js?


En primer lugar, debe otorgar permisos de Lambda IAM role para publicar en su SNS topic utilizando la IAM policy adecuada.

{ "Action" : [ "sns:Publish", "sns:Subscribe" ], "Effect" : "Allow", "Resource" : [ { "Ref" : "<your SNS topic ARN>" } ] }

Luego puede usar el siguiente código para SNS publish en su SNS topic desde su otro código Lambda o Node.js

var message = {}; var sns = new AWS.SNS(); sns.publish({ TopicArn: "<your SNS topic ARN>", Message: JSON.stringify(message) }, function(err, data) { if(err) { console.error(''error publishing to SNS''); context.fail(err); } else { console.info(''message published to SNS''); context.done(null, data); } });


Sí, podría escribir una función Lambda que publique en un tema SNS. El código que se ejecuta en Lambda tiene acceso al AWS SDK completo para Java o Javascript , cualquiera que sea su función. Solo debe asegurarse de darle al rol de IAM que ejecuta la función el acceso para publicar en su tema. En Javascript:

console.log("Loading function"); var AWS = require("aws-sdk"); exports.handler = function(event, context) { var eventText = JSON.stringify(event, null, 2); console.log("Received event:", eventText); var sns = new AWS.SNS(); var params = { Message: eventText, Subject: "Test SNS From Lambda", TopicArn: "arn:aws:sns:us-west-2:123456789012:test-topic1" }; sns.publish(params, context.done); };

También es posible manejar mensajes SNS utilizando funciones Lambda. Puede echar un vistazo al sns-message función sns-message , que se ofrece a través del botón Crear una función Lambda en la consola Lambda.