Gerenciamento de tópicos no Amazon SNS - AWS SDK for JavaScript

O Guia de API referência da AWS SDK for JavaScript V3 descreve detalhadamente todas as API operações da AWS SDK for JavaScript versão 3 (V3).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciamento de tópicos no Amazon SNS

JavaScript code example that applies to Node.js execution

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 do Node.js usam o SDK para JavaScript para gerenciar tópicos usando estes métodos da classe de cliente SNS:

Tarefas de pré-requisito

Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:

  • Configure o ambiente do projeto para executar estes exemplos do Node TypeScript e instale os módulos do AWS SDK for JavaScript e de terceiros necessários. Siga as instruções no GitHub.

  • 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 compartilhado, consulte Arquivos de configuração e credenciais compartilhados no Guia de referência de ferramentas e SDKs da AWS.

Importante

Esses exemplos demonstram como importar/exportar objetos e comandos do serviço de cliente usando o ECMAScript6 (ES6).

Criar um tópico

Neste exemplo, use um módulo do Node.js para criar um tópico do Amazon SNS.

Crie um diretório libs e um módulo do Node.js com o nome de arquivo snsClient.js. Copie e cole o código abaixo nele, o que cria o objeto de cliente do Amazon SNS. Substitua REGION pela sua região da AWS.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Esse código de exemplo pode ser encontrado aqui no GitHub.

Crie um módulo do Node.js com o nome de arquivo create-topic.js. Configure o SDK conforme mostrado anteriormente, incluindo a instalação dos clientes e pacotes necessários.

Crie um objeto para passar o Name para o novo tópico para o método CreateTopicCommand da classe de cliente SNS. Para chamar o método CreateTopicCommand, crie uma função assíncrona que invoca um objeto de serviço do Amazon SNS, passando o objeto dos parâmetros. O data retornado contém o ARN do tópico.

nota

Substitua TOPIC_NAME pelo nome do tópico.

import { CreateTopicCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicName - The name of the topic to create. */ export const createTopic = async (topicName = "TOPIC_NAME") => { const response = await snsClient.send( new CreateTopicCommand({ Name: topicName }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '087b8ad2-4593-50c4-a496-d7e90b82cf3e', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME' // } return response; };

Para executar o exemplo, digite o seguinte no prompt de comando.

node create-topic.js

Esse 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 diretório libs e um módulo do Node.js com o nome de arquivo snsClient.js. Copie e cole o código abaixo nele, o que cria o objeto de cliente do Amazon SNS. Substitua REGION pela sua região da AWS.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Esse código de exemplo pode ser encontrado aqui no GitHub.

Crie um módulo do Node.js com o nome de arquivo list-topics.js. Configure o SDK conforme mostrado anteriormente, incluindo a instalação dos clientes e pacotes necessários.

Crie um objeto vazio para passar para o método ListTopicsCommand da classe de cliente SNS. Para chamar o método ListTopicsCommand, crie uma função assíncrona que invoca um objeto de serviço do Amazon SNS, passando o objeto dos parâmetros. O data retornado contém uma matriz dos nomes dos recursos da Amazon (ARNs) do tópico.

import { ListTopicsCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const listTopics = async () => { const response = await snsClient.send(new ListTopicsCommand({})); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '936bc5ad-83ca-53c2-b0b7-9891167b909e', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // Topics: [ { TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic' } ] // } return response; };

Para executar o exemplo, digite o seguinte no prompt de comando.

node list-topics.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 diretório libs e um módulo do Node.js com o nome de arquivo snsClient.js. Copie e cole o código abaixo nele, o que cria o objeto de cliente do Amazon SNS. Substitua REGION pela sua região da AWS.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Esse código de exemplo pode ser encontrado aqui no GitHub.

Crie um módulo do Node.js com o nome de arquivo delete-topic.js. Configure o SDK conforme mostrado anteriormente, incluindo a instalação dos clientes e pacotes necessários.

Crie um objeto contendo o TopicArn do tópico para excluir e passar para o método DeleteTopicCommand da classe de cliente SNS. Para chamar o método DeleteTopicCommand, crie uma função assíncrona que invoca um objeto de serviço de cliente do Amazon SNS, passando o objeto dos parâmetros.

nota

Substitua TOPIC_ARN pelo nome do recurso da Amazon (ARN) do tópico que você está excluindo.

import { DeleteTopicCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic to delete. */ export const deleteTopic = async (topicArn = "TOPIC_ARN") => { const response = await snsClient.send( new DeleteTopicCommand({ TopicArn: topicArn }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'a10e2886-5a8f-5114-af36-75bd39498332', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } };

Para executar o exemplo, digite o seguinte no prompt de comando.

node delete-topic.js

Esse 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 diretório libs e um módulo do Node.js com o nome de arquivo snsClient.js. Copie e cole o código abaixo nele, o que cria o objeto de cliente do Amazon SNS. Substitua REGION pela sua região da AWS.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Esse código de exemplo pode ser encontrado aqui no GitHub.

Crie um módulo do Node.js com o nome de arquivo get-topic-attributes.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 GetTopicAttributesCommand da classe de cliente SNS. Para chamar o método GetTopicAttributesCommand, invoque um objeto de serviço de cliente do Amazon SNS, passando o objeto dos parâmetros.

nota

Substitua TOPIC_ARN pelo ARN do tópico.

import { GetTopicAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic to retrieve attributes for. */ export const getTopicAttributes = async (topicArn = "TOPIC_ARN") => { const response = await snsClient.send( new GetTopicAttributesCommand({ TopicArn: topicArn, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '36b6a24e-5473-5d4e-ac32-ff72d9a73d94', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // Attributes: { // Policy: '{...}', // Owner: 'xxxxxxxxxxxx', // SubscriptionsPending: '1', // TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic', // TracingConfig: 'PassThrough', // EffectiveDeliveryPolicy: '{"http":{"defaultHealthyRetryPolicy":{"minDelayTarget":20,"maxDelayTarget":20,"numRetries":3,"numMaxDelayRetries":0,"numNoDelayRetries":0,"numMinDelayRetries":0,"backoffFunction":"linear"},"disableSubscriptionOverrides":false,"defaultRequestPolicy":{"headerContentType":"text/plain; charset=UTF-8"}}}', // SubscriptionsConfirmed: '0', // DisplayName: '', // SubscriptionsDeleted: '1' // } // } return response; };

Para executar o exemplo, digite o seguinte no prompt de comando.

node get-topic-attributes.js

Esse 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 diretório libs e um módulo do Node.js com o nome de arquivo snsClient.js. Copie e cole o código abaixo nele, o que cria o objeto de cliente do Amazon SNS. Substitua REGION pela sua região da AWS.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Esse código de exemplo pode ser encontrado aqui no GitHub.

Crie um módulo do Node.js com o nome de arquivo set-topic-attributes.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 SetTopicAttributesCommand da classe de cliente SNS. Para chamar o método SetTopicAttributesCommand, crie uma função assíncrona que invoca um objeto de serviço de cliente do Amazon SNS, passando o objeto dos parâmetros.

nota

Substitua ATTRIBUTE_NAME pelo nome do atributo que você está definindo, TOPIC_ARN pelo nome do recurso da Amazon (ARN) do tópico cujos atributos você deseja definir e NEW_ATTRIBUTE_VALUE pelo novo valor desse atributo.

import { SetTopicAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const setTopicAttributes = async ( topicArn = "TOPIC_ARN", attributeName = "DisplayName", attributeValue = "Test Topic", ) => { const response = await snsClient.send( new SetTopicAttributesCommand({ AttributeName: attributeName, AttributeValue: attributeValue, TopicArn: topicArn, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'd1b08d0e-e9a4-54c3-b8b1-d03238d2b935', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };

Para executar o exemplo, digite o seguinte no prompt de comando.

node set-topic-attributes.js

Esse código de exemplo pode ser encontrado aqui no GitHub.