AWS SNS (Simple Notification Services) 알림 만들기 - 2

저번 시간에는 AWS SNS 서비스의 정책과 역할을 설정해봤습니다. 이번에는 람다를 이용해서 실제 문자를 보내는 서비스를 구축해보겠습니다. 기초적인 사용법은 생략하고 바로 SNS 를 이용한 문자를 발송해보겠습니다. 만약 람다 서비스를 사용해본적이 없다면 이전에 제가 작성한 글을 보시면 좋습니다. 

 

tttap.tistory.com/176

 

아마존 AWS 람다로 웹 서비스 만들기

서버리스 컴퓨팅이란 컴퓨터가 없이 컴퓨터를 사용하는 게 아니라 적시 적소에 특정한 서비스를 관리하지도 않고 운영한다는 개념이라고 하는군요. 비용도 절감되고 코드에만 신경 쓰면 되기

tttap.tistory.com

tttap.tistory.com/178

 

AWS SNS (Simple Notification Services) 알림 만들기 - 1

아마존은 이름을 참 잘 짓는 것 같습니다. EC2 가 처음에 뭔가 했는데 알고 보니 Elastic Compute Cloud의 C 두 개를 숫자로 줄여서 EC2라고 합니다. 그 밖에도 많습니다. Simple Storage Service (S3), IAM (인증..

tttap.tistory.com

 AWS Lambda 함수 생성 

 

 1. AWS Lambda 서비스에서 함수 메뉴를 선택합니다.

1. 람다 함수 생성


 

▼ 2. 함수를 생서하기 위해서 새로 작성을 선택한뒤 이름 및 런타임을 설정합니다. 그리고 실행 역활을 기본 권한이 아니라 기존 역할 사용을 선택합니다. 그리고 검색창에 이전에 만든 정책을 선택해줍니다.

2. 함수 새로 작성


 

▼ 3. 함수 생성 버튼을 눌러 다음 단계로 넘어갑니다.

3. 함수 생성하기


 

▼ 4. 다음 3가지 기능을 수정합니다. 

  1.  Amazon SNS 대상 추가 및 연결
  2. 테스트 이벤트 작성
  3. 실행 코드 작성

4. 람다 함수 개요


 

▼ 5. 위의 화면의 + 대상 추가버튼을 눌러서 Amazon SNS 대상을 추가합니다. 검색에서 Amazon SNS를 선택하고 저장을 눌러줍니다.

5. AWS SNS 대상 추가하기


 

▼ 6. 이번에는 테스트 이벤트를 작성합니다. 이벤트 이름을 작성하고 인자로 전달할 두개의 값을 JSON으로 생성합니다. 핸드폰 번호를 입력할 때 국가 번호를 추가해서 다음과 같은 형식으로 작성합니다. 82는 국가 코드입니다. +821077772222 (전화번호 맨 앞의 0을 제거)

  1. 전송할 내용 (text)
  2. 전송할 핸드폰 번호 (number)

6. 테스트 이벤트 구성


 

▼ 7. 이제 다음 코드를 3번 영역에 복사 붙여넣기 해줍니다. 코드의 흐름은 다음과 같습니다.

  • 아마존 SDK 임포트
  • event, context, callback의 인자를 가지는 핸들러 작성
  • params 에 이전에 생성한 테스트 이벤트의 값을 event 인자로 부터 추출
  • promise 객채를 만들어서 호출 하고 callback 메시지 노출
const AWS = require('aws-sdk');

exports.handler = (event, context, callback) => {
    const params = {
        Message: event.text,
        PhoneNumber: event.number
    };
    
    // ap-northeast-1 도쿄 리전 식별자
    const publishTextPromise = new AWS.SNS({
        apiVersion: '2010-03-31',
        region: 'ap-northeast-1'
    }).publish(params).promise();
    
    publishTextPromise.then(
        function(data) {
            callback(null, "MessageID is " + data.MessageId)
        }).catch (
            function(err) {
                callback(err);
            }
        );
    };

 

 

▼ 8. 이제 발송할 차례입니다. Deploy 버튼을 눌러서 우선 작성된 코드를 배포하고 Test 버튼을 눌러서 실제 발송합니다. 그럼 Execution 탭이 생성되면서 해당 응답값이 노출됩니다. 다음과 같이 MessageId 가 제대로 노출되면 발송에 성공했다는 뜻입니다.

8. Deploy 및 테스트


 

다음은 응답한 문자 메시지 입니다. Hello Test 가 3번 찍힌걸 볼 수 있습니다. 이전 기록을 보니 구글에서 오는 문자 인증 발송 메시지도 경쟁사인 아마존 클라우드를 사용하는 가봅니다. 물론 제 추측입니다만 신기하네요. 

8. 문자 발송 결과


 

지금까지 2개의 글을 통해서 아마존 클라우드를 통한 문자 발송 서비스를 살펴보았습니다. 문자 뿐만 아니라 대상 타깃을 변경하면 이메일 도 보낼 수 있고 클라우드 와치에 통보를 할 수도 있고 방법은 무궁무진한 것 같습니다. 다음 링크는 AWS SNS 서비스의 동작을 연계하는 방법에 대한 아마존의 공식 문서입니다.

 

aws.amazon.com/ko/blogs/korea/event-driven-computing-with-amazon-sns-compute-storage-database-and-networking-services/

 

Amazon SNS를 통한 이벤트 기반 컴퓨팅으로 AWS 주요 서비스 활용하기 | Amazon Web Services

모든 개발자가 그렇듯이 여러분은 점점 더 복잡해지는 비즈니스 문제를 풀어야 합니다. 이 때, 가장 중요한 성공 요소는 대규모 프로젝트를 작게 나눠서 관리하기 쉬운 요소로 분류할 수 있어야

aws.amazon.com

tttap.tistory.com/178

댓글

Designed by JB FACTORY