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에서 알림을 게시할 수 있는 주제를 생성하는 방법

  • Amazon SNS에서 생성된 주제를 삭제하는 방법

  • 사용 가능한 주제 목록을 가져오는 방법.

  • 주제 속성을 가져오고 설정하는 방법.

시나리오

이 예에서는 일련의 Node.js 모듈을 사용하여 Amazon SNS 주제를 생성, 나열 및 삭제하고 주제 속성을 처리합니다. 이 Node.js 모듈은 SDK for JavaScript에서 AWS.SNS 클라이언트 클래스의 다음 메서드를 사용하여 주제를 관리합니다.

사전 필수 작업

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

주제 생성

이 예에서는 Node.js 모듈을 사용하여 Amazon SNS 주제를 생성합니다. 파일 이름이 sns_createtopic.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

AWS.SNS 클라이언트 클래스의 createTopic 메서드에 새 주제의 Name을 전달할 객체를 생성합니다. createTopic 메서드를 직접 호출하려면 파라미터 객체를 전달하는 Amazon SNS 서비스 객체를 간접 호출하기 위한 promise를 생성합니다. 그런 다음 promise 콜백에서 response를 처리합니다. promise에서 반환되는 data에는 주제의 ARN이 포함됩니다.

// 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 createTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .createTopic({ Name: "TOPIC_NAME" }) .promise(); // Handle promise's fulfilled/rejected states createTopicPromise .then(function (data) { console.log("Topic ARN is " + data.TopicArn); }) .catch(function (err) { console.error(err, err.stack); });

예제를 실행하려면 명령줄에서 다음을 입력합니다.

node sns_createtopic.js

이 샘플 코드는 GitHub에서 찾을 수 있습니다.

주제 나열

이 예에서는 Node.js 모듈을 사용하여 모든 Amazon SNS 주제를 나열합니다. 파일 이름이 sns_listtopics.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

AWS.SNS 클라이언트 클래스의 listTopics 메서드에 전달할 비어 있는 객체를 생성합니다. listTopics 메서드를 직접 호출하려면 파라미터 객체를 전달하는 Amazon SNS 서비스 객체를 간접 호출하기 위한 promise를 생성합니다. 그런 다음 promise 콜백에서 response를 처리합니다. promise에서 반환되는 data에는 주제 ARN의 배열이 포함됩니다.

// 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 listTopicsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .listTopics({}) .promise(); // Handle promise's fulfilled/rejected states listTopicsPromise .then(function (data) { console.log(data.Topics); }) .catch(function (err) { console.error(err, err.stack); });

예제를 실행하려면 명령줄에서 다음을 입력합니다.

node sns_listtopics.js

이 샘플 코드는 GitHub에서 찾을 수 있습니다.

주제 삭제

이 예에서는 Node.js 모듈을 사용하여 Amazon SNS 주제를 삭제합니다. 파일 이름이 sns_deletetopic.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

AWS.SNS 클라이언트 클래스의 deleteTopic 메서드에 전달할 삭제할 주제의 TopicArn을 포함하는 객체를 생성합니다. deleteTopic 메서드를 직접 호출하려면 파라미터 객체를 전달하는 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 deleteTopicPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .deleteTopic({ TopicArn: "TOPIC_ARN" }) .promise(); // Handle promise's fulfilled/rejected states deleteTopicPromise .then(function (data) { console.log("Topic Deleted"); }) .catch(function (err) { console.error(err, err.stack); });

예제를 실행하려면 명령줄에서 다음을 입력합니다.

node sns_deletetopic.js

이 샘플 코드는 GitHub에서 찾을 수 있습니다.

주제 속성 가져오기

이 예에서는 Node.js 모듈을 사용하여 Amazon SNS 주제의 속성을 검색합니다. 파일 이름이 sns_gettopicattributes.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

AWS.SNS 클라이언트 클래스의 getTopicAttributes 메서드에 전달할 삭제할 주제의 TopicArn을 포함하는 객체를 생성합니다. getTopicAttributes 메서드를 직접 호출하려면 파라미터 객체를 전달하는 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 getTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .getTopicAttributes({ TopicArn: "TOPIC_ARN" }) .promise(); // Handle promise's fulfilled/rejected states getTopicAttribsPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });

예제를 실행하려면 명령줄에서 다음을 입력합니다.

node sns_gettopicattributes.js

이 샘플 코드는 GitHub에서 찾을 수 있습니다.

주제 속성 설정

이 예에서는 Node.js 모듈을 사용하여 Amazon SNS 주제의 변경 가능한 속성을 설정합니다. 파일 이름이 sns_settopicattributes.js인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성합니다.

속성을 설정하려고 하는 주제의 TopicArn, 설정할 속성의 이름, 해당 속성의 새 값을 포함하여 속성 업데이트를 위한 파라미터를 포함하는 객체를 생성합니다. Policy, DisplayNameDeliveryPolicy 속성만 설정할 수 있습니다. AWS.SNS 클라이언트 클래스의 setTopicAttributes 메서드에 파라미터를 전달합니다. setTopicAttributes 메서드를 직접 호출하려면 파라미터 객체를 전달하는 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 setTopicAttributes parameters var params = { AttributeName: "ATTRIBUTE_NAME" /* required */, TopicArn: "TOPIC_ARN" /* required */, AttributeValue: "NEW_ATTRIBUTE_VALUE", }; // Create promise and SNS service object var setTopicAttribsPromise = new AWS.SNS({ apiVersion: "2010-03-31" }) .setTopicAttributes(params) .promise(); // Handle promise's fulfilled/rejected states setTopicAttribsPromise .then(function (data) { console.log(data); }) .catch(function (err) { console.error(err, err.stack); });

예제를 실행하려면 명령줄에서 다음을 입력합니다.

node sns_settopicattributes.js

이 샘플 코드는 GitHub에서 찾을 수 있습니다.