Amazon SNS でのサブスクリプションの管理 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 の近日発表 end-of-support しました。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon SNS でのサブスクリプションの管理


                    JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • Amazon SNS トピックへのすべてのサブスクリプションを一覧表示する方法。

  • E メールアドレス、アプリケーションエンドポイント、または AWS Lambda 関数を Amazon SNS トピックにサブスクライブする方法。

  • Amazon SNS トピックのサブスクライブを解除する方法。

シナリオ

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

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。

サブスクリプションのトピックへの一覧表示

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

サブスクリプションを一覧表示するトピックの TopicArn パラメータを含むオブジェクトを作成します。AWS.SNS クライアントクラスの listSubscriptionsByTopic メソッドにパラメータを渡します。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にあります。

E メールアドレスのトピックへのサブスクライブ

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

email プロトコル、サブスクライブするトピックの TopicArn、およびメッセージの Endpoint としての E メールアドレスを指定するための Protocol パラメータを含むオブジェクトを作成します。AWS.SNS クライアントクラスの subscribe メソッドにパラメータを渡します。このトピックの他の例が示すように、渡されたパラメータに使用される値に応じて、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にあります。

アプリケーションエンドポイントのトピックへのサブスクライブ

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

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

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にあります。

Lambda 関数のトピックへのサブスクライブ

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

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

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にあります。

トピックからのサブスクリプションの解除

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

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

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にあります。