Serverless
-
AWS Lambda로 랜덤아재개그 슬랙봇 만들기 5편 | Interactive Components 설정하기Serverless 2018. 12. 20. 17:06
Interactive Components 설정하기 4편에 이어,버튼을 눌렀을 때 응답을 설정해보겠습니다.Request URL을 설정하라고 나오는데요,링크를 눌러서 설정해봅시다. 3편에서처럼, Reuqest URL에는 람다함수에 연결되어 있는 API Gateway의 URL을 적어주시면 됩니다. 다만, 지난 번 요청과 중복되지 않게 뒤에 /interactive를 붙여줍시다. 다시 버튼을 눌러보면,이번에는 또 다른 에러가 납니다. =_= API Gateway에 Proxy 설정을 해주지 않았기 떄문입니다. API Gateway Proxy로 Lambda와 연결하기 API Gateway를 선택하고, API Gateway의 이름을 눌러서 API Gateway콘솔로 이동합니다./gag-slack-bot/interact..
-
AWS Lambda로 랜덤아재개그 슬랙봇 만들기 4편 | Slash Command에 버튼 보여주기Serverless 2018. 12. 20. 17:03
Slash Command 응답 테스트 먼저 간단하게 람다 함수 코드를 수정하고 테스트 해보겠습니다. // index.js exports.handler = async (event) => { const buildResponse = (res) => ({ statusCode: 200, body: JSON.stringify(res), }); switch (event.httpMethod) { case 'GET': return buildResponse('Success GET'); case 'POST': return buildResponse('없어'); } return { statusCode: 400, body: 'unknown httpMethod', }; }; return 중에서 body가 슬랙에 표시되는 걸 확인하..
-
AWS Lambda로 랜덤아재개그 슬랙봇 만들기 3편 | Slash Command 설정Serverless 2018. 12. 20. 16:56
Slash Command 설정 https://api.slack.com/apps위 링크로 들어가신 후에 -> 생성한 앱 선택 -> Slash command -> Create New Command를 선택하면 다음 같은 화면을 보실 수 있습니다.필요한 내용을 입력합니다. Request URL은 2편에서 설정한 API Gateway URL을 적으면 됩니다. Workspace에 앱 설치 이제 슬랙봇을 설치해봅시다. (아직 만들지도 않았지만 일단 깔아봅시다..) Install App 탭에 들어가서 설치 버튼을 클릭한 후 진행하시면 됩니다. 슬랙봇 사용하기 이제 슬랙봇을 사용해봅시다! (아직 만들진 않았지만) /를 입력하고 명령어를 입력하면 매칭되는 커멘드가 뜨는 걸 확인하실 수 있습니다. 한 번 실행해볼까요? 에러..
-
AWS Lambda로 랜덤아재개그 슬랙봇 만들기 2편 | Lambda Function 구성하기Serverless 2018. 12. 15. 11:23
AWS Lambda 함수 생성 람다 함수를 생성합시다 Author from scratch를 선택하여 처음부터 코드를 작성할 수도 있지만 Blueprints에서 도움을 받을 수도 있습니다. 이번에는 Author from scratch를 사용해보겠습니다. 기본적인 정보들을 채워 넣습니다. Role은 템플릿으로부터 새로운 롤 생성을 선택하고 Simple microservice permissions를 선택해주세요 Api gateway와 연결 람다 함수가 생성되었습니다! 근데 아직 trigger없는 상태입니다. 람다 함수를 호출할 방법이 없다는 뜻입니다. Api Gateway를 연결해보겠습니다. 왼쪽 Add triggers에서 API Gateway를 선택해주세요 선택하신 후 하단에 몇 가지 설정을 해야하는데요, ..
-
AWS Lambda로 랜덤아재개그 슬랙봇 만들기 1편 | 기본설정Serverless 2018. 12. 14. 18:07
개요 AWS 람다를 활용하여 간단한 슬랫봇를 만들어 보겠습니다.버튼을 누르면 랜덤하게 아재개그를 뱉어내는 이상한 재밌는 친구입니다. 카카오 플러스친구 버전에 이어 슬랙봇도 만들어보겠습니다. 슬랫앱 생성슬랙 앱 사이트 (https://api.slack.com/apps)에 접속하여 상단 Create New App 버튼을 눌러 새로운 앱을 만들어봅시다. 앱을 만들고 나면 6개의 기능이 보이는데요,저희는 Slash Commands와 Interactive Components를 이용할 것입니다. Slash Commands슬래시 커멘드는 사용자가 명령을 입력할 수 있게 해줍니다.말보다 스크린 샷을 보시는 게 이해가 빠르실 것 같습니다.더 자세히 알고 싶으신 분은 슬랙 공식 문서를 참고하세요 Interactive Co..
-
[AWS Re:Invent 2018 정리 (1)] AWS Lambda 로그 개선Serverless 2018. 12. 4. 16:01
AWS Lambda를 좋아합니다. 서버 없이 코드를 실행할 수 있다는 점이 매력적입니다. 실제로 Lambda로 웹 어플리케이션을 만들었고 서비스를 운영하고 있습니다. 다만 가끔 이건 당연히 되야될 것 같은데 안되는 경우가 종종 있습니다. 로그 조회라던지, 언어마다 자주 사용하는 라이브러리가 기본 제공이 안 된다던지, ttfb개선이 안 된다던지... 근데 이제 로그 조회는 훨씬 편해졌습니다. 기존 Lambda Log 문제 Lambda의 로그는 CloudWatch에 쌓입니다. 써보신 분들은 알겠지만 람다 로그 조회에는 큰 문제가 있습니다. 로그를 통합으로 조회하기가 어렵다는 점입니다. 대략 5분 안쪽 간격으로 로그스트림 쌓이고 로그 스트림에 들어가야지만 검색이 가능합니다. 로그 그룹이 계속해서 만들어지는데 ..
-
AWS API Gateway 인증(Authorizers) 활용하기Serverless 2018. 11. 15. 00:21
X-API-Key 인증 AWS API Gateway는 기본적으로 X-API-Key 헤더를 활용한 인증을 제공합니다.하지만, 단순 Key 방식이기 때문에 OAuth 등 최근 많이 사용하는 인증을 구현하기 어렵습니다.이 방식을 사용하길 원하시면, 위와 같이 API Key Required를 true로 변경하시고, 몇 가지 설정을 더 하면 됩니다. 이 방식에 대해서는 아래 링크를 참고해주시기 바랍니다.https://blog.outsider.ne.kr/1206https://docs.aws.amazon.com/ko_kr/apigateway/latest/developerguide/api-gateway-setup-api-key-with-console.html 이 글에서는 API Key 방식 대신,좀 더 유연하게 활용할..
-
CloudWatch 활용하기 2편 | 클라우드워치로 Lambda 반복 실행하기Serverless 2018. 11. 14. 23:09
CloudWatch Event 클라우드 워치를 통해서 20분마다 특정 데이터를 DynamoDB에 집어넣는 배치프로그램을 만들어보겠습니다. 대충 위와 같은 구조입니다. 클라우드워치 이벤트를 만들어봅시다 클라우드워치 > Events > Rules로 들어가서 룰을 생성합니다 Target 추가를 선택하면 람다함수 이름을 넣으라고 합니다. 그럼 먼저 람다 함수를 작성해봅시다! Lambda 함수 작성 const AWS = require('aws-sdk'); AWS.config.region = 'ap-northeast-2'; const docClient = new AWS.DynamoDB.DocumentClient(); const BATCH_TABLE_NAME = 'batch-processing'; exports.ha..
-
CloudWatch 활용하기 1편 | 클라우드워치에서 Lambda 로그 확인하기Serverless 2018. 11. 14. 20:54
CloudWatch AWS페이지에서는 클라우드워치를 이렇게 소개합니다. Amazon CloudWatch는 개발자, 시스템 운영자, 사이트 안정성 엔지니어(SRE) 및 IT 관리자를 위해 구축된 모니터링 및 관리 서비스입니다. CloudWatch는 애플리케이션을 모니터링하고 시스템 전반의 성능 변경 사항을 이해하고 이에 대응하며, 리소스 사용률을 최적화하고, 운영 상태에 대한 통합된 뷰를 확보하는 데 필요한 데이터와 실행 가능한 통찰력을 제공합니다. AWS 리소스들을 모니터링 할 수 있게 해주는 도구입니다.여러 가지 기능이 있는데 AWS Lambda와 함께 활용할 수 있는 몇 가지 기능을 간략하게 소개해드리려고 합니다. 이 중 제가 소개해드릴 기능은 1. 람다 함수 로그 확인(Logs)2. 람다 함수 주기..
-
AWS Lambda로 랜덤아재개그 카카오 플러스친구 만들기 6편 | 텍스트로 반응하는 API (2)Serverless 2018. 11. 8. 02:00
랜덤 아재 개그 동작 제가 만들려는 봇은 이런 형태입니다. 재밌는 거 없냐고 물어보면, 아재개그 시동을 거는 질문을 합니다.뭐냐고 물어보면,아재개그를 칩니다...! 기본 키보드 변경 먼저 기본 키보드를 재밌는 거 없냐로 변경하겠습니다. // router/get.js const {DEFAULT_KEYBOARD} = require('../const'); exports.getHandler = ({path}) => { if (path === '/keyboard') { return DEFAULT_KEYBOARD; } return `success get ${path}`; }; // const.js exports.DEFAULT_KEYBOARD = { type: 'buttons', buttons: ['재밌는 거 없냐'..