Rails로 기본 정보 기술자 시험의 과거 문제 사이트를 만든다(7:Heroku 배포~자동화편)

소개



유루~쿠 배운다. 모두의 웹 공부 커뮤니티. "뉴~부루회"를 운용중입니다.
htps // // 네 w부루. 기주 b. 이오/

거기서, 뭔가 교육용의 컨텐츠를 갖고 싶어~라고 생각하고, 이번 기획을 스타트했습니다!

Rails에서 기본 정보 기술자 시험의 과거 문제 사이트를 만듭니다!

최종 목표


  • 문제 및 답변 등록은 Scaffold에서 간단하고 OK
  • API를 준비하고 무작위로 문제를 추출하는 기능을 추가합니다
  • TwitterBOT, LINEBOT, SlackBOT이 가능하면 좋을 것입니다

  • 히스토리



    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에 배포하고 정기적으로 Slack에 게시하도록 설정합니다.

  • Heroku에 배포



    1. GitHub, Heroku에 프로젝트를 새로 만듭니다.



    이 근처는, 이미 여러가지 정보가 넘치고 있다고 생각하므로, 생략하겠습니다.
  • GitHub에 소스 세트를 푸시합니다.
  • Heroku와 GitHub를 연결하고 Heroku에 배포합니다.
  • MySQL을 추가합니다.
  • DB를 작성한다. (rake db:migrate)
  • DB에 문제를 등록한다.

  • 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입니다!

    이번에는 여기까지



    고마워요!
    다음 번에는, 기본 정보의 문제에는, 표가 포함되는 경우가 있기 때문에, 문제에 화상을 등록할 수 있도록(듯이) 하고 싶습니다.

    좋은 웹페이지 즐겨찾기