やりたいこと
複数digファイルで共用したいパラメータと自digファイル内でのみ使用したいパラメータがある
includeをうまく使ってパラメータを共用したい
結論
- includeする方に
_export
を書く、される方には書かない - includeされる方はincludeする方のサブディレクトリに置く
-
!include
と:
の間には半角スペースが必要
やってみたこと
includeされる方・includeする方を同じディレクトリに置くとエラー
$ cat cmn.dig
var1: var1_val
$ cat a.dig
_export:
!include : cmn.dig
var2 : var2_val
+task1:
echo>: ${var1} ${var2}
$ digdag run a.dig
2016-10-26 19:02:45 +0900: Digdag v0.8.17
error: Validating project failed
workflow /tmp/test3/cmn.dig Workflow 'cmn' includes unknown keys: [var1] (model validation)
includeされる方をincludeする方のサブディレクトリに置くと成功
http://docs.digdag.io/workflow_definition.html?#include-another-file にならってサブディレクトリに置くと成功
$ cat cmn/cmn.dig
var1: var1_val
$ cat a.dig
_export:
!include : cmn/cmn.dig
var2: var2_val
+task1:
echo>: ${var1} ${var2}
$ digdag run a.dig
2016-10-26 18:59:11 +0900: Digdag v0.8.17
2016-10-26 18:59:14 +0900 [WARN] (main): Using a new session time 2016-10-26T00:00:00+00:00.
2016-10-26 18:59:14 +0900 [INFO] (main): Using session /tmp/test3/.digdag/status/20161026T000000+0000.
2016-10-26 18:59:14 +0900 [INFO] (main): Starting a new session project id=1 workflow name=a session_time=2016-10-26T00:00:00+00:00
2016-10-26 18:59:17 +0900 [INFO] (0016@+a+task1): echo>: var1_val var2_val
var1_val var2_val
Success. Task state is saved at /tmp/test3/.digdag/status/20161026T000000+0000 directory.
* Use --session <daily | hourly | "yyyy-MM-dd[ HH:mm:ss]"> to not reuse the last session time.
* Use --rerun, --start +NAME, or --goal +NAME argument to rerun skipped tasks.
この記事の続き