Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(7:Heroku 배포~자동화편)
7333 단어 Rails기본 정보 기술자 시험slackbot슬랙루비
소개
유루~쿠 배운다. 모두의 웹 공부 커뮤니티. "뉴~부루회"를 운용중입니다.
htps // // 네 w부루. 기주 b. 이오/
거기서, 뭔가 교육용의 컨텐츠를 갖고 싶어~라고 생각하고, 이번 기획을 스타트했습니다!
Rails에서 기본 정보 기술자 시험의 과거 문제 사이트를 만듭니다!
최종 목표
히스토리
1: 구축편
htps : // 코 m / 네 w 부루 / 있어 ms / 에 d59f47 아 c645b19620f6
2:일본어화(i18n)편
htps : // 이 m/네 w부루/있어 ms/4f12fdb61bf6cd601545
3:부모와 자식 관계, 등록편
htps : // 이 m / 네 w 부루 / 있어 ms / f2 아 20289
4:부모와 자식 관계, 참조편
h tps:// 퀵했다. 작은 m / 네 w 불 / MS / 51b11BD02691 그림 FC2 c0d
5: API편
htps : // 코 m / 네 w 부루 / 있어 ms / 89f9f847 아 2648 bd d006c
6:SlackBOT편
htps : // 이 m / 네 w 부루 / 있어 ms / 감히 b9 아 cb453이다 786bd59
7 : Heroku 배포 ~ 자동화 편
본 페이지
이번에 할 일
Heroku에 배포
1. GitHub, Heroku에 프로젝트를 새로 만듭니다.
이 근처는, 이미 여러가지 정보가 넘치고 있다고 생각하므로, 생략하겠습니다.
2. 환경 변수를 설정합시다.
배포가 완료되면 이 제품에 필요한 환경 설정을 수행합니다.
그 전에 자유롭게 설정 변경할 수 있도록 소스에 환경 변수를 추가했습니다.
lib/tasks/slack_bot.rake
require 'slack'
Slack.configure do |config|
config.token = ENV["SLACK_API_TOKEN"] # BOTのトークンは公開できない為、環境変数で設定します。
end
namespace :slack_bot do
desc 'ランダムに問題をSlackに書き込む'
task :random_question => :environment do
question = Question.random
source = "出典:#{question.category1}年度 #{question.category2} 基本情報技術者試験 午前 問#{question.category3}"
msg = "【問題】\n#{question.msg}\n\nア #{question.answers[0].msg}\nイ #{question.answers[1].msg}\nウ #{question.answers[2].msg}\nエ #{question.answers[3].msg}\n\n#{source}"
# text:出力テキスト、channel:出力先のチャンネル名、username:表示ユーザ名
Slack.chat_postMessage(text: msg, channel: ENV["SLACK_CHANNEL_NAME"], username: ENV["SLACK_BOT_NAME"])
end
end
설정할 환경 변수는 다음과 같습니다.
환경 변수
내용
SLACK_API_TOKEN
슬랙의 BOT 토큰
SLACK_CHANNEL_NAME
출력 대상 채널 이름
SLACK_BOT_NAME
표시 사용자 이름
3. 정기적으로 실행하는 설정을 실시합니다.
Heroku에는 "Heroku Scheduler"라는 것이 있으므로 추가하십시오.

설정 내용은 다음과 같습니다.
설정값
내용
보충
런타임
매일 PM3시
UTC 설정을 위해 일본 시간 (JST)으로 설정하면 매일 AM0시
실행 명령
rake slack_bot:random_question
4. 수동으로 움직여 문제가 있는지 확인합니다.
수동 실행
heroku run rake slack_bot:random_question --app {Herokuアプリ名}
이제 원하는대로 채널에 게시되면 OK입니다!
이번에는 여기까지
고마워요!
다음 번에는, 기본 정보의 문제에는, 표가 포함되는 경우가 있기 때문에, 문제에 화상을 등록할 수 있도록(듯이) 하고 싶습니다.
Reference
이 문제에 관하여(Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(7:Heroku 배포~자동화편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/newburu/items/0a8bb02e1e8c8fe737c7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(7:Heroku 배포~자동화편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/newburu/items/0a8bb02e1e8c8fe737c7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)