Anunciamos
Gerenciamento de tópicos no Amazon SNS
Este exemplo de código Node.js mostra:
-
Como criar tópicos no Amazon SNS para os quais você pode publicar notificações.
-
Como excluir tópicos criados no Amazon SNS.
-
Como obter uma lista de tópicos disponíveis.
-
Como obter e definir atributos de tópicos.
O cenário
Neste exemplo, você usa uma série de módulos do Node.js para criar, listar e excluir tópicos do Amazon SNS e para lidar com atributos de tópicos. Os módulos Node.js usam o SDK para JavaScript para gerenciar tópicos usando estes métodos da classe de cliente AWS.SNS
:
Tarefas de pré-requisito
Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:
-
Instale o Node.js. Para obter mais informações sobre como instalar Node.js, consulte o website de Node.js
. -
Crie um arquivo de configurações compartilhado com as credenciais de usuário. Para obter mais informações sobre como fornecer um arquivo de credenciais do JSON, consulte Carregar credenciais em Node.js do arquivo de credenciais compartilhado.
Criar um tópico
Neste exemplo, use um módulo do Node.js para criar um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo sns_createtopic.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto para passar o Name
para o novo tópico para o método createTopic
da classe de cliente AWS.SNS
. Para chamar o método createTopic
, crie uma promessa para invocar um objeto de serviço do Amazon SNS passando o objeto dos parâmetros. Depois, lide com response
no retorno de chamada da promessa. O data
retornado pela promessa contém o ARN do tópico.
// 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 executar o exemplo, digite o seguinte na linha de comando.
node sns_createtopic.js
Este código de exemplo pode ser encontrado aqui no GitHub
Listar os tópicos do
Neste exemplo, use um módulo do Node.js para listar todos os tópicos do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo sns_listtopics.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto vazio para passar para o método listTopics
da classe de cliente AWS.SNS
. Para chamar o método listTopics
, crie uma promessa para invocar um objeto de serviço do Amazon SNS passando o objeto dos parâmetros. Depois, lide com response
no retorno de chamada da promessa. O data
retornado pela promessa contém um array dos ARNs do seu tópico.
// 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 executar o exemplo, digite o seguinte na linha de comando.
node sns_listtopics.js
Este código de exemplo pode ser encontrado aqui no GitHub
Exclusão de um tópico
Neste exemplo, use um módulo do Node.js para excluir um tópico do Amazon SNS . Crie um módulo do Node.js com o nome de arquivo sns_deletetopic.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto contendo o TopicArn
do tópico para excluir e passar para o método deleteTopic
da classe de cliente AWS.SNS
. Para chamar o método deleteTopic
, crie uma promessa para invocar um objeto de serviço do Amazon SNS passando o objeto dos parâmetros. Depois, lide com response
no retorno de chamada da promessa.
// 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 executar o exemplo, digite o seguinte na linha de comando.
node sns_deletetopic.js
Este código de exemplo pode ser encontrado aqui no GitHub
Obter atributos do tópico
Neste exemplo, use um módulo do Node.js para recuperar atributos de um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo sns_gettopicattributes.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto contendo o TopicArn
de um tópico para excluir e passar para o método getTopicAttributes
da classe de cliente AWS.SNS
. Para chamar o método getTopicAttributes
, crie uma promessa para invocar um objeto de serviço do Amazon SNS passando o objeto dos parâmetros. Depois, lide com response
no retorno de chamada da promessa.
// 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 executar o exemplo, digite o seguinte na linha de comando.
node sns_gettopicattributes.js
Este código de exemplo pode ser encontrado aqui no GitHub
Definir atributos do tópico
Neste exemplo, use um módulo do Node.js para definir os atributos mutáveis de um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo sns_settopicattributes.js
. Configure o SDK como mostrado anteriormente.
Crie um objeto contendo os parâmetros para a atualização do atributo, incluindo o TopicArn
do tópico cujos atributos você deseja definir, o nome do atributo a ser definido e o novo valor desse atributo. É possível definir apenas os atributos Policy
, DisplayName
e DeliveryPolicy
. Passe os parâmetros para o método setTopicAttributes
da classe de cliente AWS.SNS
. Para chamar o método setTopicAttributes
, crie uma promessa para invocar um objeto de serviço do Amazon SNS passando o objeto dos parâmetros. Depois, lide com response
no retorno de chamada da promessa.
// 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 executar o exemplo, digite o seguinte na linha de comando.
node sns_settopicattributes.js
Este código de exemplo pode ser encontrado aqui no GitHub