Anunciamos
Administración de temas en Amazon SNS
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:
-
Instale Node.js. Para obtener más información acerca de la instalación de Node.js consulte el sitio web de Node.js
. -
Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo proporcionar un archivo JSON de credenciales, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas.
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