名古屋大学の情報学部の掲示板をクロールして、Twitter、LINE、Slackに更新情報を配信します。
containersのそれぞれが独立して動いています。
GCPのCloud RunとCloud Schedulerを使います。
GCPで新規プロジェクトを作成して、コマンドラインでgcloudが動くようにします。
containersディレクトリの中のディレクトリ(crawlerなど)それぞれに対して、Dockerfileが存在する階層で
$ gcloud builds submit --config cloudbuild.yaml .
を実行します。
そうすると、Cloud BuildでビルドされてContainer Registryにpushされます。
Container Registryのイメージを、Cloud Runにデプロイします。最大1リクエストかつスケール数も最大1にしてください。
containers/*/src/main.goのconfigという構造体を見れば必要な環境変数がわかります。
ひと目でわからなそうな環境変数だけ説明します。
| 環境変数 | 説明 |
|---|---|
| TARGET_URL | クロール対象の掲示板を開いたトップページのURL |
| DEFAULT_DONE | 既に投稿を配信済みとしてDBに投げるかを書きます。(true/false) |
| JOB_TAGS | 他のコンテナ向けのタグを,区切りで入力します。例)twitter,slack,line |
| 環境変数 | 説明 |
|---|---|
| TAG | タグを指定します。このタグに一致するポストでDoneがfalseのものを配信していきます。例)twitter |
Cloud Schedulerで定期的にCloud RunのURLを叩きます。