Amazon SNS에서 구독 관리 - AWS SDK for JavaScript

곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다. AWS SDK for JavaScript v3로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

Amazon SNS에서 구독 관리


                    JavaScript code example that applies to Node.js execution

이 Node.js 코드 예제는 다음을 보여 줍니다.

  • Amazon SNS 주제의 모든 구독을 나열하는 방법

  • 이메일 주소, 애플리케이션 엔드포인트 또는 AWS Lambda 함수에서 Amazon SNS 주제를 구독하는 방법

  • Amazon SNS 주제의 구독을 취소하는 방법

시나리오

이 예에서는 일련의 Node.js 모듈을 사용하여 Amazon SNS 주제에 알림 메시지를 게시합니다. 이 Node.js 모듈은 SDK for JavaScript에서 AWS.SNS 클라이언트 클래스의 다음 메서드를 사용하여 주제를 관리합니다.

사전 필수 작업

이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.

주제에 대한 구독 나열

이 예에서는 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에서 찾을 수 있습니다.

이메일 주소에서 주제 구독

이 예에서는 Node.js 모듈을 사용하여 이메일 주소에서 Amazon SNS 주제의 SMTP 이메일 메시지를 수신하도록 이메일 주소에서 주제를 구독합니다. 파일 이름이 sns_subscribeemail.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

email 프로토콜, 구독할 주제의 TopicArn, 메시지 Endpoint로 사용되는 이메일 주소를 지정하기 위한 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를 구성합니다.

application 프로토콜, 구독할 주제의 TopicArn, Endpoint 파라미터에 대한 모바일 애플리케이션 엔드포인트의 ARN을 지정하기 위한 Protocol 파라미터를 포함하는 객체를 생성합니다. 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 주제의 알림을 수신하도록 Lambda 함수에서 주제를 구독합니다. 파일 이름이 sns_subscribelambda.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

lambda 프로토콜, 구독할 주제의 TopicArn, Endpoint 파라미터로 사용되는 AWS Lambda 함수의 ARN을 지정하는 Protocol 파라미터를 포함하는 객체를 생성합니다. 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에서 찾을 수 있습니다.