티스토리 뷰

golang

Slack Slash Command - 영한 번역(3)

fistful 2019. 7. 16. 20:27
반응형

개요

 

Slack Slash Command 영한 번역을 해보자.

이를 위해 Google Cloud Functions Translation API 이용해본다.

 

목차

 

구구절절이 적다보니 하나의 게시물에 모두 적으면 정신이 없다.

아래와 같이 부분으로  나누어서 하나씩 정리해가며 포스팅 해본다.

 

첫번째 포스팅. Slack Slash Command 만들고, 로컬 PC 에서 서버를 구동해본다.

- 겸사겸사 Slack Slash Command 전달되는 내용을 들여다본다.

두번째 포스팅. 로컬 PC 에서 Translation API 호출해본다.

- 비용과 API 사용법을 알아보자

세번째 포스팅. 구현한 내용을 Cloud Functions 올려서 서비스한다.

- 별도의 서버 구축없이 위의 기능을 돌려보자. 비용도 확인해본다.

첫번째 포스팅: https://jusths.tistory.com/136

두번째 포스팅: https://jusths.tistory.com/137

 

구현 코드 보기

 

GitHub 링크: https://github.com/nicewook/slack-translate/

- 마지막 포스팅의 구현은 master 브랜치를 참고하면 된다.

 

최종 구현의 동작 프로세스 다시 보기

 

1) Slack 에서 /tr <English sentence to translate> 치면

2) Cloud Functions 에서는 English sentence (혹은 한글 문장) 추출하여, Translation API 이용하여 번역후

3) Slack 회신해준다.

 

구현1. Goggle Cloud Functions 준비

 

완전히 새로운 Project 생성한 다음, Translation API Cloud Functions 설정해보겠음

링크: https://cloud.google.com/functions/docs/quickstart-go

 

1) project id jhs-slack-project 만들었음

2) billing enable

- 링크: https://cloud.google.com/billing/docs/how-to/modify-project

3) Cloud Functions API enable

링크: http://bit.ly/2Z3CFkx

 

 

4) Cloud Translation API enable

GCP Console 검색창에서 Translation 으로 검색하여 들어가서

API Enable 하면 된다.

 

 

구현2. Cloud Functions Deploy 하기

 

소스코드의 api 폴더로 들어가 아래와 같이 실행하면 된다.

 

$gcloud functions deploy xxxxxx --entry-point TranslateEnglish2Korean --runtime go111 --trigger-http --set-env-vars PROJECT_ID=jhs-slack-project

 

준비: GCP CLI 에서 접근할 있도록 gcloud SDK 설치하고 로그인 해두어야

 

1) 기존에 다른 project 설정되어 있어서 jhs-slack-project 다시 설정함

 

2) Local PC 에서 실습했던 환경변수들이 설정되어 있지 않은 것을 있다.

 

3) 위에 언급했던 대로 gcloud 이용하여 Cloud Functions deploy 하였다

 

- xxxxxx url 끝이 달릴 임의의 이름이다.

- --entry-point TranslateEnglish2Korean 실제 구현한 함수명이다.

- xxxxxx 접근한 HTTP POST 처리할 함수명이 된다.

 

- --set-env-vars 환경변수이다.

- PROJECT_ID jhs-slack-project 하겠다는 것아래에서 좀더 언급하겠다.

- 실제로 SLACK_SIGNING_SECRET 설정해줘야 하는데

이것은 GUI 콘솔창에서 하도록 하겠다.

 

4) 중요한 것은 httpsTrigger 항목이다.

- deploy 되면 자동으로 url 생성되는데

- Slack Slash Command HTTP POST Request url 보내면 되는 것이다.

 

GCP Console 들어가서 Cloud Functions 메뉴에서 확인해보자

 

1) General 탭을 보면 Memory 256 MB 기본으로 생성된 것을 있고, 환경변수 PROJECT_ID jhs-slack-project 설정되어 있다.

2) Source 탭을 보면 코드가 올라가 있는 것이 보인다. Function to execute TranslateEnglish2Korean 함수이다.

 

 

 

구현3. Slack Slash Command 만들기

 

이미 해본 것이지만 전체적 개념을 잡기위해 한번 만들어보자.

https://api.slack.com/apps 링크로 들어가서 새로운 app 만들자.

 

간단히 이름과 Workspace 설정하고 생성하였다.

 

Slack Slash Command 새로 생성해주었다.

 

1) 이번에는 Command /tt 해주었다.

 

2) Request URL 항목이 중요한데,

 

- 위에 Cloud Functions deploy 시에 생성된 url 입력해주면 된다.

- , Slack Slash command 만들어져 전송되는 HTTP POST Request

- Cloud Functions url 보내겠다는 것이다.

 

그리고 Workspace 생성한 app install 해주면 된다.

 

1) 마지막으로 생성한 Slack App Signing Secret

 

2) Cloud Functions 환경변수로 넣어주면 된다.

 

 

아래와 같이 동작 확인

 

 

 

Cloud Functions 참고. 비용

 

- 200 무료 호출에 100만초 무료 컴퓨팅 시간, 그리고 5GB 무료 인터넷 송신 트래픽이면 무료라 생각하면 되겠다.

 


반응형
댓글
댓글쓰기 폼