概要
werckerには、APIを使ってpipelineを実行する機能があり、zapierにはscheduleを決めて、webhookとしてpostすることができる。
それらを組み合わせて、werckerを使ってバッチ処理を行う。
メリット
- werckerはdockerベースなので、言語や環境などを問わない。
- どちらも無料の範囲でやれる。
やり方
werkerの設定
まずwerckerでpipelineを設定する。
やりかたは、このあたり の記事を参考に設定してください。
pipelineのURLのうち、
https://app.wercker.com/<ユーザー名>/<アプリケーション名>/workflows/pipelines/<パイプラインID>
という構成になっているので、パイプラインIDをメモっておく。
apiキーは、settingsのPersonal tokensから取得しておく。
zapierの設定
Scheduleをトリガーに、webhookをアクションに設定する。
webhookはPOSTするようにする。
設定は、以下の通り
設定 | 内容 |
---|---|
URL | https://app.wercker.com/api/v3/runs/ |
Payload Type | JSON |
Data | pipelineId:<werckerでメモしたパイプラインID> |
Headers | Authorization:Bearer <APIキー> |
werker.ymlを設定する
個人的に使っているのは、google analyticsの流入キーワードを、bigqueryに保存するという処理で使っているのですが、そのwerckerファイルです(かなりやっつけ)。
box: ruby
keyword-update:
steps:
- script:
name: gem install
code: gem install oauth2 legato bigquery signet
- script:
name: batch
code: ruby analytics-batch.rb
最後に
あとはリポジトリにプッシュしておけば、設定したスケジュールにあわせて勝手に実行されると思います。
pipelineを作るときは、git pushに連動しないようにしておくと、勝手に実行されないのでいいかも?