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
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).
Isso requer o Node.js versão 13.x ou superior. Para baixar e instalar a versão mais recente do Node.js, consulte Downloads do Node.js
. Se você preferir usar a sintaxe do CommonJS, consulte Sintaxe ES6/CommonJS de JavaScript.
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