

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Gerenciamento de assinaturas no Amazon SNS
<a name="sns-examples-subscribing-unubscribing-topics"></a>

![JavaScript code example that applies to Node.js execution](http://docs.aws.amazon.com/pt_br/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**Este exemplo de código Node.js mostra:**
+ Como listar todas as assinaturas para um tópico do Amazon SNS.
+ Como inscrever um endereço de e-mail, um endpoint de aplicativo ou uma função do AWS Lambda em um tópico do Amazon SNS.
+ Como cancelar a assinatura dos tópicos do Amazon SNS.

## O cenário
<a name="sns-examples-subscribing-unubscribing-yopics-scenario"></a>

Neste exemplo, você usa uma série de módulos do Node.js para publicar mensagens de notificação em tópicos do Amazon SNS. Os módulos Node.js usam o SDK para JavaScript para gerenciar tópicos usando estes métodos da classe de cliente `AWS.SNS`:
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#subscribe-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#subscribe-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#confirmSubscription-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#confirmSubscription-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listSubscriptionsByTopic-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#listSubscriptionsByTopic-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#unsubscribe-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#unsubscribe-property)

## Tarefas de pré-requisito
<a name="sns-examples-subscribing-unubscribing-topics-prerequisites"></a>

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](http://nodejs.org).
+ 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](loading-node-credentials-shared.md).

## Listar assinaturas em um tópico
<a name="sns-examples-list-subscriptions-email"></a>

Neste exemplo, use um módulo do Node.js para listar todas as inscrições em um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo `sns_listsubscriptions.js`. Configure o SDK como mostrado anteriormente.

Crie um objeto contendo o parâmetro `TopicArn` para o tópico cujas assinaturas você deseja listar. Passe os parâmetros para o método `listSubscriptionsByTopic` da classe de cliente `AWS.SNS`. Para chamar o método `listSubscriptionsByTopic`, 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" });

const params = {
  TopicArn: "TOPIC_ARN",
};

// Create promise and SNS service object
var subslistPromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .listSubscriptionsByTopic(params)
  .promise();

// Handle promise's fulfilled/rejected states
subslistPromise
  .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_listsubscriptions.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_listsubscriptions.js).

## Inscrever um endereço de e-mail em um tópico
<a name="sns-examples-subscribing-email"></a>

Neste exemplo, use um módulo do Node.js para inscrever um endereço de e-mail de forma que ele receba mensagens de e-mail SMTP de um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo `sns_subscribeemail.js`. Configure o SDK como mostrado anteriormente.

Crie um objeto que contém o parâmetro `Protocol` para especificar o protocolo `email`, o `TopicArn` do tópico a ser assinado e um endereço de e-mail como `Endpoint` da mensagem. Passe os parâmetros para o método `subscribe` da classe de cliente `AWS.SNS`. Você pode usar o método `subscribe` para assinar vários endpoints diferentes para um tópico do Amazon SNS, dependendo dos valores usados para os parâmetros passados, como outros exemplos neste tópico mostrarão.

Para chamar o método `subscribe`, 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 subscribe/email parameters
var params = {
  Protocol: "EMAIL" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  Endpoint: "EMAIL_ADDRESS",
};

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .subscribe(params)
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log("Subscription ARN is " + data.SubscriptionArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node sns_subscribeemail.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribeemail.js).

## Inscrever um endpoint de aplicativo em um tópico
<a name="sns-examples-subscribing-apps"></a>

Neste exemplo, use um módulo do Node.js para inscrever um endpoint de aplicativo móvel para receber notificações de um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo `sns_subscribeapp.js`. Configure o SDK como mostrado anteriormente.

Crie um objeto contendo o parâmetro `Protocol` para especificar o protocolo `application`, o `TopicArn` para o tópico no qual será feita a inscrição e o ARN do endpoint de um aplicativo móvel para o parâmetro `Endpoint`. Passe os parâmetros para o método `subscribe` da classe de cliente `AWS.SNS`.

Para chamar o método `subscribe`, 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 subscribe/email parameters
var params = {
  Protocol: "application" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  Endpoint: "MOBILE_ENDPOINT_ARN",
};

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .subscribe(params)
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log("Subscription ARN is " + data.SubscriptionArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node sns_subscribeapp.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribeapp.js).

## Inscrever uma função do Lambda em um tópico
<a name="sns-examples-subscribing-lambda"></a>

Neste exemplo, use um módulo do Node.js para inscrever uma função do para receber notificações de um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo `sns_subscribelambda.js`. Configure o SDK como mostrado anteriormente.

Crie um objeto contendo o parâmetro `Protocol`, especificando o protocolo `lambda`, o `TopicArn` do tópico de inscrição e o ARN de uma função AWS Lambda como o parâmetro do `Endpoint`. Passe os parâmetros para o método `subscribe` da classe de cliente `AWS.SNS`.

Para chamar o método `subscribe`, 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 subscribe/email parameters
var params = {
  Protocol: "lambda" /* required */,
  TopicArn: "TOPIC_ARN" /* required */,
  Endpoint: "LAMBDA_FUNCTION_ARN",
};

// Create promise and SNS service object
var subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .subscribe(params)
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .then(function (data) {
    console.log("Subscription ARN is " + data.SubscriptionArn);
  })
  .catch(function (err) {
    console.error(err, err.stack);
  });
```

Para executar o exemplo, digite o seguinte na linha de comando.

```
node sns_subscribelambda.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribelambda.js).

## Cancelar a inscrição em um tópico
<a name="sns-examples-unsubscribing"></a>

Neste exemplo, use um módulo do Node.js para cancelar a inscrição a um tópico do Amazon SNS. Crie um módulo do Node.js com o nome de arquivo `sns_unsubscribe.js`. Configure o SDK como mostrado anteriormente.

Crie um objeto que contém o parâmetro `SubscriptionArn`, especificando o ARN da inscrição para cancelar a assinatura. Passe os parâmetros para o método `unsubscribe` da classe de cliente `AWS.SNS`.

Para chamar o método `unsubscribe`, 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 subscribePromise = new AWS.SNS({ apiVersion: "2010-03-31" })
  .unsubscribe({ SubscriptionArn: TOPIC_SUBSCRIPTION_ARN })
  .promise();

// Handle promise's fulfilled/rejected states
subscribePromise
  .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_unsubscribe.js
```

Este código de exemplo pode ser encontrado [aqui no GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_unsubscribe.js).