Administración de temas en Amazon SNS - AWS SDK for JavaScript

Anunciamos el próximo fin del soporte para AWS SDK for JavaScript v2. Se recomienda que migre a AWS SDK for JavaScript v3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Administración de temas en Amazon SNS


                    JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo crear temas en Amazon SNS en los que pueda publicar notificaciones.

  • Cómo eliminar temas creados en Amazon SNS.

  • Cómo obtener una lista de los temas disponibles.

  • Cómo obtener y establecer atributos de temas.

El escenario

En este ejemplo, va a utilizar una serie de módulos de Node.js para crear, enumerar y eliminar temas de Amazon SNS y para gestionar atributos de los temas. Los módulos de Node.js usan el SDK para JavaScript para administrar temas mediante los métodos de clase de cliente de Amazon SNS siguientes:

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:

Creación de un tema

En este ejemplo, utilice un módulo de Node.js para crear un tema de Amazon SNS. Cree un módulo de Node.js con el nombre de archivo sns_createtopic.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto para transferir el Name del nuevo tema al método createTopic de la clase de cliente de Amazon SNS. Para llamar al método createTopic, cree una promesa para invocar un objeto de servicio de Amazon SNS pasando el objeto de parámetros. Luego gestione la response en la devolución de llamada de la promesa. Los data que la promesa devuelve contienen el ARN del tema.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var createTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .createTopic({ Name: "TOPIC_NAME" }) .promise(); // Handle promise's fulfilled/rejected states createTopicPromise .then(function (data) { console.log("Topic ARN is " + data.TopicArn); }) .catch(function (err) { console.error(err, err.stack); });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node sns_createtopic.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Enumeración de los temas de

En este ejemplo, utilice un módulo de Node.js para generar una lista de todos los temas de Amazon SNS. Cree un módulo de Node.js con el nombre de archivo sns_listtopics.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto vacío para transferirlo al método listTopics de la clase de cliente de Amazon SNS. Para llamar al método listTopics, cree una promesa para invocar un objeto de servicio de Amazon SNS pasando el objeto de parámetros. Luego gestione la response en la devolución de llamada de la promesa. Los data que la promesa devuelve contienen una matriz de ARN de su tema.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var listTopicsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .listTopics({}) .promise(); // Handle promise's fulfilled/rejected states listTopicsPromise .then(function (data) { console.log(data.Topics); }) .catch(function (err) { console.error(err, err.stack); });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node sns_listtopics.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Eliminación de un tema

En este ejemplo, utilice un módulo de Node.js para eliminar un tema de Amazon SNS. Cree un módulo de Node.js con el nombre de archivo sns_deletetopic.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto que contenga el TopicArn del tema que se va a eliminar para transferirlo al método deleteTopic de la clase de cliente Amazon SNS. Para llamar al método deleteTopic, cree una promesa para invocar un objeto de servicio de Amazon SNS pasando el objeto de parámetros. Luego gestione la response en la devolución de llamada de la promesa.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var deleteTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .deleteTopic({ TopicArn: "TOPIC_ARN" }) .promise(); // Handle promise's fulfilled/rejected states deleteTopicPromise .then(function (data) { console.log("Topic Deleted"); }) .catch(function (err) { console.error(err, err.stack); });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node sns_deletetopic.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Obtención de atributos de temas

En este ejemplo, utilice un módulo de Node.js para recuperar atributos de un tema de Amazon SNS. Cree un módulo de Node.js con el nombre de archivo sns_gettopicattributes.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto que contenga el TopicArn de un tema que se vaya a eliminar para transferirlo al método getTopicAttributes de la clase de cliente de Amazon SNS. Para llamar al método getTopicAttributes, cree una promesa para invocar un objeto de servicio de Amazon SNS pasando el objeto de parámetros. Luego gestione la response en la devolución de llamada de la promesa.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create promise and SNS service object var getTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .getTopicAttributes({ TopicArn: "TOPIC_ARN" }) .promise(); // Handle promise's fulfilled/rejected states getTopicAttribsPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node sns_gettopicattributes.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Configuración de los atributos de un tema

En este ejemplo, utilice un módulo de Node.js para establecer los atributos mutables de un tema de Amazon SNS. Cree un módulo de Node.js con el nombre de archivo sns_settopicattributes.js. Configure el SDK como le hemos mostrado anteriormente.

Cree un objeto que contenga los parámetros para realizar la actualización del atributo, como el TopicArn del tema cuyos atributos desea establecer, el nombre del atributo que se va a establecer y el nuevo valor para dicho atributo. Solo puede establecer los atributos Policy, DisplayName y DeliveryPolicy. Transfiera los parámetros al método setTopicAttributes de la clase de cliente de Amazon SNS. Para llamar al método setTopicAttributes, cree una promesa para invocar un objeto de servicio de Amazon SNS pasando el objeto de parámetros. Luego gestione la response en la devolución de llamada de la promesa.

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set region AWS.config.update({ region: "REGION" }); // Create setTopicAttributes parameters var params = { AttributeName: "ATTRIBUTE_NAME" /* required */, TopicArn: "TOPIC_ARN" /* required */, AttributeValue: "NEW_ATTRIBUTE_VALUE", }; // Create promise and SNS service object var setTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .setTopicAttributes(params) .promise(); // Handle promise's fulfilled/rejected states setTopicAttribsPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node sns_settopicattributes.js

Este código de ejemplo se puede encontrar aquí en GitHub.