

AWS SDK for JavaScript v2 はサポート終了となりました。[AWS SDK for JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) に移行することをお勧めします。その他の詳細、移行方法については、こちらの[発表内容](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)を参照してください。

# Amazon SNS でのサブスクリプションの管理
<a name="sns-examples-subscribing-unubscribing-topics"></a>

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

**この Node.js コード例は以下を示しています。**
+ Amazon SNS トピックへのすべてのサブスクリプションを一覧表示する方法。
+ E メールアドレス、アプリケーションエンドポイント、または AWS Lambda 関数を Amazon SNS トピックにサブスクライブする方法。
+ Amazon SNS トピックのサブスクライブを解除する方法。

## シナリオ
<a name="sns-examples-subscribing-unubscribing-yopics-scenario"></a>

この例では、一連の Node.js モジュールを使用して通知メッセージを Amazon SNS トピックに発行します。Node.js モジュールは、`AWS.SNS` クライアントクラスの以下のメソッドを使用してトピックを管理するために SDK for JavaScript を使用します。
+ [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)

## 前提条件タスク
<a name="sns-examples-subscribing-unubscribing-topics-prerequisites"></a>

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
+ Node.js をインストールします。Node.js をインストールする方法の詳細については、[Node.js ウェブサイト](http://nodejs.org)を参照してください。
+ ユーザーの認証情報を使用して、共有設定ファイルを作成します。認証情報 JSON ファイルの提供の詳細については、「[共有認証情報ファイルから Node.js に認証情報をロードする](loading-node-credentials-shared.md)」を参照してください。

## サブスクリプションのトピックへの一覧表示
<a name="sns-examples-list-subscriptions-email"></a>

この例では、Node.js モジュールを使用して Amazon SNS トピックへのすべてのサブスクリプションを一覧表示します。`sns_listsubscriptions.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

サブスクリプションを一覧表示するトピックの `TopicArn` パラメータを含むオブジェクトを作成します。`listSubscriptionsByTopic` クライアントクラスの `AWS.SNS` メソッドにパラメータを渡します。`listSubscriptionsByTopic` メソッドを呼び出すには、Amazon SNS サービスオブジェクトを呼び出すための promise を作成し、パラメータオブジェクトを渡します。その後、promise コールバックの `response` を処理します。

```
// 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);
  });
```

この例を実行するには、コマンドラインに次のように入力します。

```
node sns_listsubscriptions.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_listsubscriptions.js)にあります。

## E メールアドレスのトピックへのサブスクライブ
<a name="sns-examples-subscribing-email"></a>

この例では、Node.js モジュールを使用して E メールアドレスをサブスクライブし、Amazon SNS トピックから SMTP E メールメッセージを受信するようにします。`sns_subscribeemail.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

`Protocol` プロトコル、サブスクライブするトピックの `email`、およびメッセージの `TopicArn` としての E メールアドレスを指定するための `Endpoint` パラメータを含むオブジェクトを作成します。`subscribe` クライアントクラスの `AWS.SNS` メソッドにパラメータを渡します。このトピックの他の例が示すように、渡されたパラメータに使用される値に応じて、`subscribe` メソッドを使用して Amazon SNS トピックにいくつかの異なるエンドポイントをサブスクライブすることができます。

`subscribe` メソッドを呼び出すには、Amazon SNS サービスオブジェクトを呼び出すための promise を作成し、パラメータオブジェクトを渡します。その後、promise コールバックの `response` を処理します。

```
// 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);
  });
```

この例を実行するには、コマンドラインに次のように入力します。

```
node sns_subscribeemail.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribeemail.js)にあります。

## アプリケーションエンドポイントのトピックへのサブスクライブ
<a name="sns-examples-subscribing-apps"></a>

この例では、Node.js モジュールを使用してモバイルアプリケーションのエンドポイントをサブスクライブし、Amazon SNS トピックから通知を受信するようにします。`sns_subscribeapp.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

`Protocol` パラメータを含むオブジェクトを作成し、`application` プロトコル、サブスクライブするトピックの `TopicArn`、および `Endpoint` パラメータのモバイルアプリケーションエンドポイントの ARN を指定します。`subscribe` クライアントクラスの `AWS.SNS` メソッドにパラメータを渡します。

`subscribe` メソッドを呼び出すには、Amazon SNS サービスオブジェクトを呼び出すための promise を作成し、パラメータオブジェクトを渡します。その後、promise コールバックの `response` を処理します。

```
// 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);
  });
```

この例を実行するには、コマンドラインに次のように入力します。

```
node sns_subscribeapp.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribeapp.js)にあります。

## Lambda 関数のトピックへのサブスクライブ
<a name="sns-examples-subscribing-lambda"></a>

この例では、Node.js モジュールを使用して AWS Lambda 関数をサブスクライブし、Amazon SNS トピックから通知を受け取るようにします。`sns_subscribelambda.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

`Protocol` パラメータを含むオブジェクトを作成し、`lambda` プロトコル、サブスクライブするトピックの `TopicArn`、および AWS Lambda 関数の ARN を `Endpoint` パラメータとして指定します。`subscribe` クライアントクラスの `AWS.SNS` メソッドにパラメータを渡します。

`subscribe` メソッドを呼び出すには、Amazon SNS サービスオブジェクトを呼び出すための promise を作成し、パラメータオブジェクトを渡します。その後、promise コールバックの `response` を処理します。

```
// 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);
  });
```

この例を実行するには、コマンドラインに次のように入力します。

```
node sns_subscribelambda.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_subscribelambda.js)にあります。

## トピックからのサブスクリプションの解除
<a name="sns-examples-unsubscribing"></a>

この例では、Node.js モジュールを使用して Amazon SNS トピックのサブスクリプションを解除します。`sns_unsubscribe.js` というファイル名で Node.js モジュールを作成します。前に示したように SDK を設定します。

解除するサブスクリプションの ARN を指定して、`SubscriptionArn` パラメータを含むオブジェクトを作成します。`unsubscribe` クライアントクラスの `AWS.SNS` メソッドにパラメータを渡します。

`unsubscribe` メソッドを呼び出すには、Amazon SNS サービスオブジェクトを呼び出すための promise を作成し、パラメータオブジェクトを渡します。その後、promise コールバックの `response` を処理します。

```
// 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);
  });
```

この例を実行するには、コマンドラインに次のように入力します。

```
node sns_unsubscribe.js
```

 このサンプルコードは、[このGitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/javascript/example_code/sns/sns_unsubscribe.js)にあります。