はじめに
Digdag の Ruby scripts では rb>: Task::MyWorkflow.my_task
というような感じで Ruby のメソッドを実行することができますが、
この my_task
メソッドに対して引数を渡したい場合の解決方法を記載します。
結論
引数が必要なメソッドを実装し、Digdag のパラメータで同名のパラメータを渡してやると Digdag がよしなにやってくれます。
def my_task(hoge:)
puts hoge
end
+task1
_export:
hoge: 'Hello, world!'
rb>: Task::MyWorkflow.my_task
require: tasks/my_workflow
詳細
Digdag のこのあたりの実装を読むとパラメータから引数を取得していることがわかります。
また、以下のように rb>:
の記述で引数を指定することでは解決できません。
rb>: "Task::MyWorkflow.my_task(hoge: ${hoge})"