{"id":877,"date":"2022-04-23T22:44:39","date_gmt":"2022-04-24T01:44:39","guid":{"rendered":"https:\/\/www.8sq.cl\/?p=877"},"modified":"2024-02-26T09:31:42","modified_gmt":"2024-02-26T12:31:42","slug":"sns-de-aws-y-como-publicar-notificaciones-con-node-js","status":"publish","type":"post","link":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/","title":{"rendered":"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS"},"content":{"rendered":"\n<p>En muchas ocasiones las aplicaciones o soluciones que desarrollamos necesitan enviar notificaciones a terceros en funci\u00f3n de alg\u00fan tipo de evento. Por ejemplo notificar a un conjunto de correos cuando se modifica o se genera un registro relevante, a veces esto es complejo de desarrollar pero con AWS SNS la vida se vuelve m\u00e1s f\u00e1cil. <\/p>\n\n\n\n<p>Estas notificaciones en general no son parte del modelo o soluci\u00f3n en si, y necesitan abstraerse en un modelo distinto, como el modelo &#8220;publish\/suscribe&#8221;, aqu\u00ed es donde entra en escena<a href=\"https:\/\/aws.amazon.com\/es\/sns\/\" target=\"_blank\" rel=\"noreferrer noopener\"> AWS Simple Notificacion Service<\/a> (SNS), un servicio escalable y completamente administrado por AWS, que permite implementar un modelo publish\/suscribe con mucha facilidad, de esa forma se pueden enviar mensajes de texto (SMS), email, notificaciones push y otros tipos de mensaje a distintos targets en m\u00faltiples canales sin tener que lidiar con la complejidad de implementar todo eso. <\/p>\n\n\n\n<p>En este post revisaremos como generar un t\u00f3pico SNS y enviar mensajes desde un peque\u00f1o script para Node.js usando el SDK para Javascript de AWS, recuerda que en <a href=\"https:\/\/www.8sq.io\/index.php\/productos-y-servicios\/\" target=\"_blank\" rel=\"noreferrer noopener\">Octasquare <\/a>somos arquitectos de soluciones certificados en AWS y podemos brindarte consultor\u00eda e implementaci\u00f3n de soluciones en la nube <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">1 &#8211; Generar T\u00f3pico SNS<\/h4>\n\n\n\n<p>Para empezar, tenemos que dirigirnos a nuestra consola de administraci\u00f3n de AWS y buscar el servicio SNS, luego en este, elegir la opci\u00f3n de &#8220;Topics&#8221; y &#8220;Create Topic&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"877\" height=\"562\" src=\"https:\/\/www.8sq.cl\/wp-content\/uploads\/2022\/04\/standar.png\" alt=\"crear topic SNS\" class=\"wp-image-891\" title=\"crear t\u00f3pico sns\" srcset=\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/standar.png 877w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/standar-300x192.png 300w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/standar-768x492.png 768w\" sizes=\"(max-width: 877px) 100vw, 877px\" \/><figcaption class=\"wp-element-caption\">SNS<\/figcaption><\/figure>\n\n\n\n<p>Nota: Si van por FIFO solo permite como protocolo colas SQS, por lo que si queremos mandar email, SMS u otra cosa, deberemos usar el &#8220;Standard&#8221;<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">2 &#8211; Crear Usuario IAM (program\u00e1tico)<\/h4>\n\n\n\n<p>Dado que usaremos el <a href=\"https:\/\/aws.amazon.com\/es\/sdk-for-javascript\/\" target=\"_blank\" rel=\"noreferrer noopener\">SDK de AWS para Javascript<\/a>, necesitamos crear un usuario program\u00e1tico que tendr\u00e1 los permisos necesarios para realizar acciones sobre el servicio SNS<\/p>\n\n\n\n<p>En la secci\u00f3n de IAM en la consola de AWS iremos a crear usuario<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"492\" src=\"https:\/\/www.8sq.cl\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-3-1024x492.png\" alt=\"add user iam\" class=\"wp-image-884\" title=\"add user iam\" srcset=\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-3-1024x492.png 1024w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-3-300x144.png 300w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-3-768x369.png 768w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-3-1536x739.png 1536w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-3.png 1930w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>En este caso usaremos un nombre gen\u00e9rico como &#8220;SNSUser&#8221;, pero recuerden que estos permisos se pueden agregar a un usuario ya existente (program\u00e1tico). <\/p>\n\n\n\n<p>Los permisos a agregar el usuario son los siguientes:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"497\" src=\"https:\/\/www.8sq.cl\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-4-1024x497.png\" alt=\"add user IAM\" class=\"wp-image-885\" title=\"add user iam\" srcset=\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-4-1024x497.png 1024w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-4-300x146.png 300w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-4-768x373.png 768w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-4-1536x746.png 1536w, https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/email-subscription-to-aws-sns-with-nodejs-4.png 1936w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Esto permitir\u00e1 que el usuario &#8220;SNSUSer&#8221; tenga todos los permisos sobre el servicio de SNS, con ello se podr\u00e1n generar suscripciones y hacer publicaciones frente a un t\u00f3pico <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">3 &#8211; Guardar Credenciales en entorno de Node.js <\/h4>\n\n\n\n<p>Finalizando el paso anterior, la consola de AWS nos entrega los datos del usuario creado, como su &#8220;Access Key Id&#8221; y &#8220;Secret Access Key&#8221;, es importante que estos datos se traspasen al entorno donde se ejecutar\u00e1 la aplicaci\u00f3n Node.js, una forma de hacerlo es v\u00eda este peque\u00f1o script para linux <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>touch ~\/.aws\/credentials\necho &#39;[sns_profile]&#39; &gt;&gt; ~\/.aws\/credentials\necho &#39;aws_access_key_id = &lt;YOUR_ACCESS_KEY_ID&gt;&#39; &gt;&gt; ~\/.aws\/credentials # The access key ID from the IAM user\necho &#39;aws_secret_access_key = &lt;YOUR_SECRET_ACCESS_KEY&gt;&#39; &gt;&gt; ~\/.aws\/credentials # The secret access key from the IAM user\necho &#39;region = &lt;YOUR_AWS_REGION&gt;&#39; # From the regions page, examples include: us-east-1, us-west-1, eu-west-1, etc.<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">4 &#8211; App Demo en Node.js<\/h4>\n\n\n\n<p>Crearemos una carpeta donde instalaremos los packages necesarios y el script para node que enviar\u00e1 las notificaciones SNS.  Nota: en este caso usamos YARN como package manager, pero los pasos son equivalente con NPM<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>$ mkdir node-sns-app\n$ cd node-sns-app\n$ yarn init<\/code><\/pre><\/div>\n\n\n\n<p>Ahora instalaremos algunos de los packages que usaremos<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>yarn add aws-sdk <\/code><\/pre><\/div>\n\n\n\n<p>y crearemos el script para Node.js<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>touch index.js<\/code><\/pre><\/div>\n\n\n\n<p>Como contenido inicial pondremos:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>import AWS from &#39;aws-sdk&#39;;\n\nconst credentials = new AWS.SharedIniFileCredentials({ profile: &#39;sns_profile&#39; });\nconst sns = new AWS.SNS({ credentials: credentials, region: &#39;us-west-2&#39; });<\/code><\/pre><\/div>\n\n\n\n<p>Aqu\u00ed estamos importando AWS desde el SDK de Amazon y cargando el objeto de credenciales que creamos anteriormente. Es importante notar que cuando se crea el objeto &#8220;sns&#8221; se define la regi\u00f3n en donde hemos creado el Topic en el inicio del articulo. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\">5 &#8211; Suscribirse a un Topic<\/h4>\n\n\n\n<p>Para suscribirse a un topic creado previamente se puede usar una funci\u00f3n como la siguiente: <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>const subscribe = (topicarn, email) =&gt; {\n    let params = {\n        Protocol: &#39;EMAIL&#39;,\n        TopicArn: topicarn,\n        Endpoint: email\n    };\n\n    sns.subscribe(params, (err, data) =&gt; {\n        if (err) {\n            console.log(err);\n        } else {\n            console.log(data);\n        }\n    });\n}<\/code><\/pre><\/div>\n\n\n\n<p>y para ejecutarla, dentro del mismo archivo, se puede escribir algo como: <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>const TopicArn = &#39;&lt;EL ARN DEL TOPIC AQUI&gt;&#39;;\nsubscribe(TopicArn, &#39;&lt;UN EMAIL A SUSCRIBIR&gt;&#39;);<\/code><\/pre><\/div>\n\n\n\n<p>Si todo se hizo de forma correcta, por el terminal se podr\u00e1 ver un mensaje indicando que esta pendiente la confirmaci\u00f3n de suscripci\u00f3n, esto quiere decir que se envi\u00f3 un correo desde AWS al destino y se espera un OK del usuario. <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-json\" data-lang=\"JSON\"><code>{\n  ResponseMetadata: { RequestId: &#39;629b0f63-cf00-5202-8e48-55bd68d4513s&#39; },\n  SubscriptionArn: &#39;pending confirmation&#39;\n}<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">6 &#8211; Publicar un mensaje v\u00eda SNS<\/h4>\n\n\n\n<p>Con todos los pasos anteriores ya tenemos un Topic SNS creado y un correo suscrito a dicho t\u00f3pico, ahora lo que resta es gatillar un mensaje hacia SNS para que este se encargue de enviar dicho mensaje a todos los suscriptores que hayan y por los protocolos que se hayan definido, para hacerlo es muy simple:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>const publish = (message, subject, topicarn) =&gt; {\n    let params = {\n        Message: message,\n        Subject: subject,\n        TopicArn: topicarn\n    };\n\n    sns.publish(params, function (err, data) {\n        if (err) console.log(err, err.stack);\n        else console.log(data);\n    });\n}<\/code><\/pre><\/div>\n\n\n\n<p>y se puede ejecutar con un par de lineas estilo: <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>const TopicArn = &#39;&lt;EL ARN DEL TOPIC AQUI&gt;&#39;;\npublish(&#39;Test message&#39;, &#39;Test subject&#39;, TopicArn);<\/code><\/pre><\/div>\n\n\n\n<p>Si todo fue OK ver\u00e1n un mensaje como el siguiente en consola:<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-json\" data-lang=\"JSON\"><code>{\n  ResponseMetadata: { RequestId: &#39;5908b0Ce-d063-537e-9f6e-ea3079103b0X&#39; },\n  MessageId: &#39;8b3c6dd6-3daa-5bcC-83a1-370894d9b3bX&#39;\n}<\/code><\/pre><\/div>\n\n\n\n<p>Y en la bandeja de entrada del mail suscrito aparecer\u00e1 el correo con el asunto &#8220;Test subject&#8221; y como mensaje &#8220;Test message&#8221;<\/p>\n\n\n\n<p>el c\u00f3digo completo lo puedes ver a continuaci\u00f3n: <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-js\" data-lang=\"JavaScript\"><code>\nimport AWS from &#39;aws-sdk&#39;;\n\nconst credentials = new AWS.SharedIniFileCredentials({ profile: &#39;&lt;PROFILE NAME&gt;&#39; });\nconst sns = new AWS.SNS({ credentials: credentials, region: &#39;&lt;REGION&gt;&#39; });\n\nconst subscribe = (topicarn, email) =&gt; {\n    let params = {\n        Protocol: &#39;EMAIL&#39;,\n        TopicArn: topicarn,\n        Endpoint: email\n    };\n\n    sns.subscribe(params, (err, data) =&gt; {\n        if (err) {\n            console.log(err);\n        } else {\n            console.log(data);\n        }\n    });\n}\n\nconst publish = (message, subject, topicarn) =&gt; {\n    let params = {\n        Message: message,\n        Subject: subject,\n        TopicArn: topicarn\n    };\n\n    sns.publish(params, function (err, data) {\n        if (err) console.log(err, err.stack);\n        else console.log(data);\n    });\n}\n\n\/\/ solo para ejecutar y probar el codigo: \nconst TopicArn = &#39;&lt;TOPIC ARN&gt;&#39;;\nsubscribe(TopicArn, &#39;&lt;MAIL ADDRESS&gt;&#39;);\npublish(&#39;Test message&#39;, &#39;Test subject&#39;, TopicArn);<\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">7 &#8211; Pr\u00f3ximos pasos <\/h4>\n\n\n\n<p>Se puede seguir expandiendo la idea trabajando por ejemplo en el formateo del mensaje, de modo que se env\u00ede en HTML y claro esta, enviando informaci\u00f3n que sea relevante para el prop\u00f3sito que se busque.<\/p>\n\n\n\n<p>Eventualmente, solo cambiando el protocolo de la suscripci\u00f3n se pueden enviar mensajes SNS no solo a emails suscritos, sino que por ejemplo se pueden gatillar llamadas HTTP, funciones lambda, colas SQS, entre otros, generando as\u00ed una gama de opciones y posibilidades. \u00bfrecuperaciones autom\u00e1ticas de servicio frente a alg\u00fan tipo de alerta? \u00bfavisos tempranos frente a problemas&#8230;? Etc&#8230; <\/p>\n","protected":false},"excerpt":{"rendered":"<p>C\u00f3mo enviar notificaciones v\u00eda Node.JS a SNS de AWS usando el SDK de Javascript <\/p>\n","protected":false},"author":1,"featured_media":825,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[8,9,15,10,17,16,14],"class_list":["post-877","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-useful","tag-aws","tag-aws-sdk","tag-ec2","tag-javascript","tag-node-js","tag-rds","tag-sns"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS - Octasquare<\/title>\n<meta name=\"description\" content=\"c\u00f3mo enviar notificaciones SNS de AWS via Javascript usando NodeJS y el SDK de AWS para Javascript . send messages SNS\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS - Octasquare\" \/>\n<meta property=\"og:description\" content=\"c\u00f3mo enviar notificaciones SNS de AWS via Javascript usando NodeJS y el SDK de AWS para Javascript . send messages SNS\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Octasquare\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-24T01:44:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-26T12:31:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1511\" \/>\n\t<meta property=\"og:image:height\" content=\"850\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"8SQ\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"8SQ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo estimado de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\"},\"author\":{\"name\":\"8SQ\",\"@id\":\"https:\/\/www.8sq.io\/#\/schema\/person\/768c651ed1ef791fb7f00c00846f8c10\"},\"headline\":\"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS\",\"datePublished\":\"2022-04-24T01:44:39+00:00\",\"dateModified\":\"2024-02-26T12:31:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\"},\"wordCount\":850,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.8sq.io\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg\",\"keywords\":[\"aws\",\"aws-sdk\",\"EC2\",\"javascript\",\"NODE.JS\",\"RDS\",\"SNS\"],\"articleSection\":[\"Useful\"],\"inLanguage\":\"es-CL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\",\"url\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\",\"name\":\"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS - Octasquare\",\"isPartOf\":{\"@id\":\"https:\/\/www.8sq.io\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg\",\"datePublished\":\"2022-04-24T01:44:39+00:00\",\"dateModified\":\"2024-02-26T12:31:42+00:00\",\"description\":\"c\u00f3mo enviar notificaciones SNS de AWS via Javascript usando NodeJS y el SDK de AWS para Javascript . send messages SNS\",\"breadcrumb\":{\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#breadcrumb\"},\"inLanguage\":\"es-CL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es-CL\",\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage\",\"url\":\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg\",\"contentUrl\":\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg\",\"width\":1511,\"height\":850},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.8sq.io\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.8sq.io\/#website\",\"url\":\"https:\/\/www.8sq.io\/\",\"name\":\"Octasquare\",\"description\":\"Development &amp; Consulting apoyo en implementaci\u00f3n de soluciones cloud, gesti\u00f3n de proyectos y m\u00e1s\",\"publisher\":{\"@id\":\"https:\/\/www.8sq.io\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.8sq.io\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es-CL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.8sq.io\/#organization\",\"name\":\"Octasquare\",\"url\":\"https:\/\/www.8sq.io\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-CL\",\"@id\":\"https:\/\/www.8sq.io\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/logo_8sq_sticky.png\",\"contentUrl\":\"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/logo_8sq_sticky.png\",\"width\":271,\"height\":121,\"caption\":\"Octasquare\"},\"image\":{\"@id\":\"https:\/\/www.8sq.io\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.8sq.io\/#\/schema\/person\/768c651ed1ef791fb7f00c00846f8c10\",\"name\":\"8SQ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es-CL\",\"@id\":\"https:\/\/www.8sq.io\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/163c3e1152a56725f63510e928d969eb6e3760c257ae4139ea965a14b2fb4273?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/163c3e1152a56725f63510e928d969eb6e3760c257ae4139ea965a14b2fb4273?s=96&d=mm&r=g\",\"caption\":\"8SQ\"},\"sameAs\":[\"https:\/\/www.8sq.cl\"],\"url\":\"https:\/\/www.8sq.io\/index.php\/author\/rberrezueta\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS - Octasquare","description":"c\u00f3mo enviar notificaciones SNS de AWS via Javascript usando NodeJS y el SDK de AWS para Javascript . send messages SNS","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/","og_locale":"es_ES","og_type":"article","og_title":"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS - Octasquare","og_description":"c\u00f3mo enviar notificaciones SNS de AWS via Javascript usando NodeJS y el SDK de AWS para Javascript . send messages SNS","og_url":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/","og_site_name":"Octasquare","article_published_time":"2022-04-24T01:44:39+00:00","article_modified_time":"2024-02-26T12:31:42+00:00","og_image":[{"width":1511,"height":850,"url":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg","type":"image\/jpeg"}],"author":"8SQ","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"8SQ","Tiempo estimado de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#article","isPartOf":{"@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/"},"author":{"name":"8SQ","@id":"https:\/\/www.8sq.io\/#\/schema\/person\/768c651ed1ef791fb7f00c00846f8c10"},"headline":"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS","datePublished":"2022-04-24T01:44:39+00:00","dateModified":"2024-02-26T12:31:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/"},"wordCount":850,"commentCount":0,"publisher":{"@id":"https:\/\/www.8sq.io\/#organization"},"image":{"@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg","keywords":["aws","aws-sdk","EC2","javascript","NODE.JS","RDS","SNS"],"articleSection":["Useful"],"inLanguage":"es-CL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/","url":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/","name":"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS - Octasquare","isPartOf":{"@id":"https:\/\/www.8sq.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage"},"image":{"@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage"},"thumbnailUrl":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg","datePublished":"2022-04-24T01:44:39+00:00","dateModified":"2024-02-26T12:31:42+00:00","description":"c\u00f3mo enviar notificaciones SNS de AWS via Javascript usando NodeJS y el SDK de AWS para Javascript . send messages SNS","breadcrumb":{"@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#breadcrumb"},"inLanguage":"es-CL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/"]}]},{"@type":"ImageObject","inLanguage":"es-CL","@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#primaryimage","url":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg","contentUrl":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/3794746-scaled-e1650326427847.jpg","width":1511,"height":850},{"@type":"BreadcrumbList","@id":"https:\/\/www.8sq.io\/index.php\/2022\/04\/23\/sns-de-aws-y-como-publicar-notificaciones-con-node-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.8sq.io\/"},{"@type":"ListItem","position":2,"name":"SNS de AWS y c\u00f3mo publicar notificaciones con Node.JS"}]},{"@type":"WebSite","@id":"https:\/\/www.8sq.io\/#website","url":"https:\/\/www.8sq.io\/","name":"Octasquare","description":"Development &amp; Consulting apoyo en implementaci\u00f3n de soluciones cloud, gesti\u00f3n de proyectos y m\u00e1s","publisher":{"@id":"https:\/\/www.8sq.io\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.8sq.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es-CL"},{"@type":"Organization","@id":"https:\/\/www.8sq.io\/#organization","name":"Octasquare","url":"https:\/\/www.8sq.io\/","logo":{"@type":"ImageObject","inLanguage":"es-CL","@id":"https:\/\/www.8sq.io\/#\/schema\/logo\/image\/","url":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/logo_8sq_sticky.png","contentUrl":"https:\/\/www.8sq.io\/wp-content\/uploads\/2022\/04\/logo_8sq_sticky.png","width":271,"height":121,"caption":"Octasquare"},"image":{"@id":"https:\/\/www.8sq.io\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.8sq.io\/#\/schema\/person\/768c651ed1ef791fb7f00c00846f8c10","name":"8SQ","image":{"@type":"ImageObject","inLanguage":"es-CL","@id":"https:\/\/www.8sq.io\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/163c3e1152a56725f63510e928d969eb6e3760c257ae4139ea965a14b2fb4273?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/163c3e1152a56725f63510e928d969eb6e3760c257ae4139ea965a14b2fb4273?s=96&d=mm&r=g","caption":"8SQ"},"sameAs":["https:\/\/www.8sq.cl"],"url":"https:\/\/www.8sq.io\/index.php\/author\/rberrezueta\/"}]}},"_links":{"self":[{"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/posts\/877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/comments?post=877"}],"version-history":[{"count":18,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/posts\/877\/revisions"}],"predecessor-version":[{"id":948,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/posts\/877\/revisions\/948"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/media\/825"}],"wp:attachment":[{"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/media?parent=877"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/categories?post=877"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.8sq.io\/index.php\/wp-json\/wp\/v2\/tags?post=877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}