Ruby의 FaaS로 slackbot 만들기
FaaStRuby
를 사용하여 Slack Bot 만들기FaaStRuby는 무엇입니까? 는 분은 여기
환경
faastruby : 0.2.1
슬랙 측 설정
webhook 등록
이번에는 Outgoing Webhooks를 사용하여 bot를 만들므로 설정을 수행합니다.
h tps : // 테 m 핥아. scck. 코 m / 아 ps / 마나게 / 쿠 s와 m-in g 라치온 s
여기에서 outgoing webhooks의 integration 만들기
outgoing webhooks가 등록되지 않은 경우 h tps : // 테 m 핥아. scck. 코 m/아 ps의 검색 창에서
'outgoing webhooks'에서 검색 및 생성
작성한 후 Integration Settings의 channel과 URL에 각각 Bot을 넣고 싶은 채널과 faastruby로 만든 엔드포인트를 입력한다
※ 엔드포인트에 대해서는 후술
FaaStRuby 측 설정
이쪽에서는 bot의 내용을 만들어 간다
이번에는 쉽게 사용자 이름과 사용자가 입력한 단어를 반환하는 bot를 만든다
Gem 설치
$ gem install faastruby
작업 공간 만들기
이번에는
slackbot
라는 이름으로 작업 공간을 만들었습니다.아마 겹치지 않으면 원하는 이름의 것을 만들 수 있습니다.
$ faastruby create-workspace slackbot
Function 만들기
이쪽도
slackbot
로 작성하고 있다$ faastruby new slackbot
위 명령을 실행하면 다음 파일이 자동으로 생성됩니다.
workspace(slackbot)
├─ function(slackbot)
├─ Gemfile
├─ handler.rb
├─ faastruby.yml
└─ spec
├─ handler_spec.rb
├─ spec_helper.rb
└─ helper
└─ faastruby.rb
이 중
handler.rb
가 function의 내용bot의 구현은 이런 느낌
handler.rb
require 'json'
def handler event
data = event.body ? JSON.parse(event.body) : {}
response = {}
if data['user_name'] != 'slackbot'
response['text'] = "#{data['user_name']} : #{data['text']}"
end
respond_with response
end
event는 요청 정보를 가지며 event.body에 요청 내용이 문자열로 포함되어 있습니다.
outgoing webhook의 bot에서는 다음과 같은 데이터가 전달됩니다.
token=*********************
team_id=T0001
team_domain=example
channel_id=C2147483705
channel_name=test
timestamp=1355517523.000005
user_id=U2147483697
user_name=Steve
text=googlebot: What is the air-speed velocity of an unladen swallow?
trigger_word=googlebot:
respond_with response
에서 응답 반환아래의 JSON을 반환하면 bot이 채널에서 텍스트 내용을 중얼거립니다.
{
"text": "African or European?"
}
배포
마지막으로 FaaStRuby 서버에 배포하지만 그 전에
faastruby.yml
를 조금 다시 씁니다.faastruby.yml
---
name: slackbot # function名
test_command: rspec # テストコマンド
abort_build_when_tests_fail: false # テストが失敗したときにビルドをやめるか
abort_deploy_when_tests_fail: false # テストが失敗したときにデプロイをやめるか
그렇다면 후반 두 가지 설정을 false로 설정하지 않으면 테스트에서 떨어지고 배포 할 수 없습니다.
spec/handler_spec.rb
의 테스트를, 이번용으로 재작성하면 true에서도 배포할 수 있다배포 명령
$ cd slackbot
$ faastruby deploy-to slackbot
배포가 끝나면 다음과 같은 엔드포인트가 생성됩니다.
https://api.faastruby.io/slackbot/slackbot
workspace와 function의 이름을 동일하게 만든 실패 ...
어느 것이 확실하지 않습니다
엔드포인트는 이런 형태가 된다
https://api.faastruby.io/workspace-name/function-name
이 끝점을 위의 Slack Webhooks 설정에 넣어서 bot를 이동할 수 있습니다.
데모
문제없이 움직였다.
결론
FaaStRuby는 좋다.
참고 URL
Slack의 Outgoing Webhooks를 사용하여 게시물에 반응하는 bot 만들기
Reference
이 문제에 관하여(Ruby의 FaaS로 slackbot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kichinaga/items/c281ea4e5e4251e7ac5d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Slack의 Outgoing Webhooks를 사용하여 게시물에 반응하는 bot 만들기
Reference
이 문제에 관하여(Ruby의 FaaS로 slackbot 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kichinaga/items/c281ea4e5e4251e7ac5d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)