Twilio API 스터디 Vol.28 - 서버리스 아키텍처에서 Twilio를 안전하게 운영하세요! 핸즈온 메모
AWS Lambda Function 생성
AWS에 로그인하고 AWS Lambda를 선택합니다.
환영 화면에서 새로 만들기
blueprint 에 HelloWorld
AWS Lambda Function 설정
console.log('Received event:', JSON.stringify(event, null, 2));
console.log('Received event:', JSON.stringify(context, null, 2));
로 코드를 변경하여 Save & Test
페이지 아래의 실행 결과 확인
Add event source를 살짝 봐
Add API Endpoint 선택하고 만들기
Amazon API Gateway 설정
prod를 새 탭에서 열기
페이지의 오른쪽 탭 Resources로
Method Request
Method Execution의 Authentication을 NONE
통합 요청
Input Path Through에서 Mapping template로 변경. AWS lambda에 보낸 모든 매개변수를 검색할 수 있도록 허용
{
"param": {
#foreach( $key in $input.params().querystring.keySet() )
"$key": "$input.params().querystring.get($key)"#if( $foreach.hasNext ),#end
#end
}
}
통합 응답
200개 확장
Mapping Templates
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say language="ja-jp">今は回線混んでるよ〜</Say>
</Response>
Method Response
200개 확장
추가 응답 모델
최종 확인
![スクリーンショット 2015-12-05 13.27.00.png](https://s1.md5.ltd/image/ad2b2305ea06fc2f35a48d55a60d8173.png)
Deploy API
Deploy API에서 prod로 배포
Stages에서 왼쪽 탐색 메뉴에서 TwilioFallback GET으로 이동하여 URL을 클릭하십시오.
AWS Lambda에 있는 Monitoring에서 CloudWatch에 가서 확인.
Twilio fallbackURL에 적합한 URL을 설정
그 전화번호로 전화 걸기
다시 CloudWatch에서 확인
event.param.~에서 Twilio의 정보를 받아 이것을 확인했습니다.
그리고는 Slack에 던지게 되고, Twilio로 관리자에게 전화하거나, 좋아하는 대로 Node.js로 쓴다.
Slack 알림 샘플
var https = require('https');
var fs = require('fs');
exports.handler = function(event, context) {
param = {
text: "電話エラー発生!!\nAccountSid: " + event.param.AccountSid + ",\n ErrorUrl: <" + encodeURIComponent(event.param.ErrorUrl) + "|Link>,\nFrom: " + event.param.From + ",\nTo: " + event.param.To,
icon_emoji: ":ghost:"
};
var post_data = "payload=" + JSON.stringify(param);
var path = "your slack incoming-webhook path";
var post_options = {
host: 'hooks.slack.com',
port: '443',
path: path,
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength(post_data)
}
};
// Set up the request
var post_req = https.request(post_options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
context.done();
});
});
// post the data
post_req.write(post_data);
post_req.end();
};
Reference
이 문제에 관하여(Twilio API 스터디 Vol.28 - 서버리스 아키텍처에서 Twilio를 안전하게 운영하세요! 핸즈온 메모), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kimihom/items/941b5c7ee87371db9dbf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)