본문 바로가기

전체 글

(148)
Docker Intro - 4. Base Image에 서비스 올려 구동해보기
Docker Intro - 3. Base Image 만들기
Slack Slash Command를 통해 AWS 서버 스케줄링하기 - 3. API Gateway & Slack REST API로 구성하도록 하겠습니다. Method를 POST로 Auth 함수를 연동시켜주세요 매핑 탬플릿은 아래와 같습니다. application/x-www-form-urlencoded ## convert HTML POST data to JSON ## get the raw post data from the AWS built-in variable and give it a nicer name #set($rawAPIData = $input.path('$')) ## first we get the number of "&" in the string, this tells us if there is more than one key value pair #set($countAmpersands = $rawAPIData...
Slack Slash Command를 통해 AWS 서버 스케줄링하기 - 2. Lambda 가장 먼저, Token 값을 인증할 람다함수를 만들겠습니다. 슬랙 앱을 구성하고 맨 처음에 있는 토큰 값을 가지고 인증할 것입니다. import json import boto3 def check_token(token): token_list = ["Slack Verify Token"] if token in token_list: return True else: return False def lambda_handler(event, context): print(event) token = event['token'] client = boto3.client('lambda') if check_token(token): response = client.invoke_async( FunctionName='slack-slash..
Slack Slash Command를 통해 AWS 서버 스케줄링하기 - 1. Intro Slash Command의 구성도는 위와 같습니다. 슬랙에서 유저가 슬래쉬 커맨드를 입력하면, 세팅된 URL을 통해 입력한 텍스트와 Response URL 등이 전달되고 Response를 3000ms 안에 준 후에, Response URL로 제대로 된 응답을 계속해서 줄 수 있습니다. 따라서 Auth에서 처음 Slack Slash Command를 통해 받은 토큰 값을 체크하고 인증되었다는 Response를 준 후, 실제 커맨드에 대한 결과는 Response URL로 다른 람다함수를 실행하여 그 결과값을 전달해주는 형태로 구성하였습니다. 만약 좀 더 사용자에게 편하게 구성하고자 한다면, 이전 슬랙 승인체계 구축할때 사용하였던 Interactive component로 응답을 주어 EC2 리스트 중 선택하여 ..
Slack으로 CICD 승인체계 구성하기 - 4. Slack, Jenkins Job 이제 마무리 단계입니다. 전 게시글에서 배포한 API, Gateway Jenkins Rest API를 콜하는 URL을 넣어주세요 자, 이제 기존 젠킨스 잡에서 누군가 Job을 Build 했을 때, 슬랙에서 승인이 되어야 넘어갈 수 있도록 Jenkins Job을 수정하도록 하겠습니다. 먼저, Slack Bot Token 값을 Credentials에 만든 후, 젠킨스 잡에서 변수로 넣어주도록 하겠습니다. 이제 기존 Pipeline 소스코드에 스크립트를 추가하겠습니다. 승인체계만 있는 Jenkins Pipeline Stage Script는 아래와 같습니다. 잘 읽어보시면 알겠지만 account(approver)가 admin이어야 넘어가는 형태입니다. Jenkins 권한을 쪼개서, 스크립트 수정을 못하게 (볼 ..
Slack으로 CICD 승인체계 구성하기 - 3. API Gateway REST API로 구성하도록 하겠습니다. 전 게시글에서 만든, Lambda들을 넣어주세요 리소스를 하나씩 추가해주겠습니다. 이제 method를 post로 구성해서 람다를 연결시켜주세요 이유는 잘 모르겠지만 애들도 사람인지라 이렇게 못 찾는 경우가 있습니다. 그럴 땐 람다 ARN을 복사해서 넣어주세요 만들어진 메소드 -> 통합 설정 -> 매핑 탬플릿에서 application/json -> 메서드 요청 패스스루 지정해주시면 됩니다. 마찬가지로 rest-api도 리소스를 만들어주겠습니다. 똑같이 메소드 POST에 람다 골라주시고, 이번엔 아래와 같이 설정해주세요 application/x-www-form-urlencoded ## The `substring(8)` returns the input with ever..
Slack으로 CICD 승인체계 구성하기 - 2. Lambda 앞선 글에 이어서 이제 위에서 2단계 ~ 4단계까지 구성을 하나씩 해보도록 하겠습니다. 먼저, 2단계를 수행해주는 람다함수를 만들어보겠습니다. Slack Interactive Component입니다. 슬랙채널에 버튼 같은 요소를 직접 작성하여 Slacker를 통해 구현하며, Slack Bot Token으로 인증하여 메세지를 채널에 전달합니다. 전 글에서 마지막에 본 Slack Bot Token을 환경변수에 저장해주도록 하겠습니다. 만약 보안상의 염려가 되신다면, KMS를 통해 암호화하신 후 사용하셔도 좋습니다. 이제 Layer입니다. Slacker 라이브러리를 사용하기 때문에 해당 라이브러리를 바로 Layer로 올려서 사용해주시면 됩니다. 소스코드는 아래와 같습니다. import os from slack..