DigdagサーバへのTreasureData接続情報設定


やりたいこと

http://qiita.com/pilot/items/e763a67675e264ed0347 で作成したDigdagサーバに
http://qiita.com/pilot/items/ff49174adbbfd0a3c9e4#digdag%E3%81%AEtd%E3%82%B5%E3%83%BC%E3%83%90%E3%83%A2%E3%83%BC%E3%83%89 でプロジェクトをpushしたがAPIキー・エンドポイントの設定ができず実行できなかった

当該プロジェクトにTreasureData接続情報(APIキー・エンドポイント)を設定して実行できるようにしたい

結論

digdag secretsで設定する

APIキー設定

digdag secretsコマンドでサーバに設定する
以下のいずれかの方法で

方法1 - APIキー文字列をコマンドラインにべた書き

$ digdag secrets --project proj1 --set td.apikey=XXX
2016-10-26 12:43:59 +0900: Digdag v0.8.17
Secret 'td.apikey' set

ヒストリにAPIキー文字列が残る

方法2 - APIキー文字列をファイルに書く

$ vi tmpfile # APIキー文字列を書く
$ digdag secrets --project proj1 --set td.apikey=@tmpfile
2016-10-26 12:44:29 +0900: Digdag v0.8.17
Secret 'td.apikey' set
$ rm tmpfile

方法3 - td.confから抜き出し

$ digdag secrets --project proj1 --set td.apikey=`grep apikey ~/.td/td.conf | sed 's/.*= *\(.*\)/\1/'`
2016-10-26 12:45:45 +0900: Digdag v0.8.17
Secret 'td.apikey' set

digdag secretsに「td.confからAPIキーを取得」機能があると嬉しい

エンドポイント設定

前述のAPIキー設定方法のいずれかで
apikeyでなくendpoint

https://はつけない
td.confでは付いてるのでどちらかに統一してあると嬉しい

方法3だと以下

$ digdag secrets --project proj1 --set td.endpoint=`grep endpoint ~/.td/td.conf | sed 's#.*= *https://\(.*\)#\1#'`
2016-11-02 18:51:41 +0900: Digdag v0.8.18
Secret 'td.endpoint' set

実行

$ digdag start proj1 xxx --session now
2016-10-26 12:46:05 +0900: Digdag v0.8.17
Started a session attempt:
  session id: 94
  attempt id: 93
  uuid: 09141eca-f97c-4424-957e-cc76a732c58a
  project: proj1
  workflow: xxx
  session time: 2016-10-26 03:46:07 +0000
  retry attempt name:
  params: {}
  created at: 2016-10-26 12:46:08 +0900

* Use `digdag session 94` to show session status.
* Use `digdag task 93` and `digdag log 93` to show task status and logs.

~ 何度かdigdag session 94を実行して終わるのを待つ ~

$ digdag log 93
2016-10-26 12:47:11 +0900: Digdag v0.8.17
2016-10-26 12:46:08.989 +0900 [INFO] (0288@+xxx+task1) io.digdag.core.agent.OperatorManager: td>: xxx.sql
2016-10-26 12:46:09.969 +0900 [INFO] (0288@+xxx+task1) io.digdag.core.agent.OperatorManager: td>: xxx.sql
2016-10-26 12:46:11.280 +0900 [INFO] (0288@+xxx+task1) io.digdag.standards.operator.td.TdOperatorFactory$TdOperator: Started presto job id=8044900:
SELECT COUNT(*) AS count FROM xxx

2016-10-26 12:46:13.391 +0900 [INFO] (0288@+xxx+task1) io.digdag.core.agent.OperatorManager: td>: xxx.sql
2016-10-26 12:46:15.227 +0900 [INFO] (0288@+xxx+task2) io.digdag.core.agent.OperatorManager: echo>: 42