AWS SNS (Simple Notification Services) 알림 만들기 - 2
- Computer/아마존 AWS
- 2021. 4. 30. 10:39
저번 시간에는 AWS SNS 서비스의 정책과 역할을 설정해봤습니다. 이번에는 람다를 이용해서 실제 문자를 보내는 서비스를 구축해보겠습니다. 기초적인 사용법은 생략하고 바로 SNS 를 이용한 문자를 발송해보겠습니다. 만약 람다 서비스를 사용해본적이 없다면 이전에 제가 작성한 글을 보시면 좋습니다.
AWS Lambda 함수 생성
▼ 1. AWS Lambda 서비스에서 함수 메뉴를 선택합니다.
▼ 2. 함수를 생서하기 위해서 새로 작성을 선택한뒤 이름 및 런타임을 설정합니다. 그리고 실행 역활을 기본 권한이 아니라 기존 역할 사용을 선택합니다. 그리고 검색창에 이전에 만든 정책을 선택해줍니다.
▼ 3. 함수 생성 버튼을 눌러 다음 단계로 넘어갑니다.
▼ 4. 다음 3가지 기능을 수정합니다.
- Amazon SNS 대상 추가 및 연결
- 테스트 이벤트 작성
- 실행 코드 작성
▼ 5. 위의 화면의 + 대상 추가버튼을 눌러서 Amazon SNS 대상을 추가합니다. 검색에서 Amazon SNS를 선택하고 저장을 눌러줍니다.
▼ 6. 이번에는 테스트 이벤트를 작성합니다. 이벤트 이름을 작성하고 인자로 전달할 두개의 값을 JSON으로 생성합니다. 핸드폰 번호를 입력할 때 국가 번호를 추가해서 다음과 같은 형식으로 작성합니다. 82는 국가 코드입니다. +821077772222 (전화번호 맨 앞의 0을 제거)
- 전송할 내용 (text)
- 전송할 핸드폰 번호 (number)
▼ 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 가 제대로 노출되면 발송에 성공했다는 뜻입니다.
다음은 응답한 문자 메시지 입니다. Hello Test 가 3번 찍힌걸 볼 수 있습니다. 이전 기록을 보니 구글에서 오는 문자 인증 발송 메시지도 경쟁사인 아마존 클라우드를 사용하는 가봅니다. 물론 제 추측입니다만 신기하네요.
지금까지 2개의 글을 통해서 아마존 클라우드를 통한 문자 발송 서비스를 살펴보았습니다. 문자 뿐만 아니라 대상 타깃을 변경하면 이메일 도 보낼 수 있고 클라우드 와치에 통보를 할 수도 있고 방법은 무궁무진한 것 같습니다. 다음 링크는 AWS SNS 서비스의 동작을 연계하는 방법에 대한 아마존의 공식 문서입니다.
'Computer > 아마존 AWS' 카테고리의 다른 글
[ AWS ] DynamoDB 연결 REST API 만들기 (2) (0) | 2021.05.27 |
---|---|
[ AWS ] DynamoDB 연결 REST API 만들기 (1) (0) | 2021.05.26 |
AWS SNS (Simple Notification Services) 알림 만들기 - 1 (0) | 2021.04.29 |
아마존 AWS 람다로 웹 서비스 만들기 (0) | 2021.04.23 |
AWS 다이나모 DB 데이터베이스 CURD 기초 및 활용 (0) | 2021.04.22 |