🦔

Digdagを使うためにしれたら良さそうなこと

2022/10/01に公開1

前回の記事に引き続きdigdagの理解をしているところです。
まだまだ荒削りな感じではありますが、これを知っておけばdigdagを調べて使えるよね~くらいな内容です。

digdagの実行

digdagはプロジェクトを立てた時点で、実行用のサンプルが付いています。

$ digdag init mydag

実行するには以下のようにrunコマンドで実行できます。

$ cd mydag
$ digdag run mydag.dig

たとえばExample

digdagでは.digという拡張子が使われており、これはyamlの拡張になっている。

timezone: UTC

_export:
  sh:
    shell: ["/usr/bin/zsh"]

+step1:
  sh>: tasks/shell_sample.sh

+step2:
  py>: tasks.MyWorkflow.step2
  param1: this is param1

+step3:
  rb>: MyWorkflow.step3
  require: tasks/ruby_sample.rb

タスク

+で記述されているのは1つのタスクとして扱われる。
タスクは上から順番に実行される。

オペレータ

オペレータ>以降で記述されるのは様々なオペレーションによって色々なアクションを記述することができる。
上記で出ているsh>py>rb>はおそらくみんなが思っていることが実行される。

オペレータ一覧は
http://docs.digdag.io/operators.html

パラメータ

パラメータは_から始まるものを表します。
全体的に利用するのもあれば、特定のオペレータでのみ利用するパラメータが存在します。

変数定義

_export: パラメータを利用することで変数が定義できる。これはタスク内で記述すればそのタスク内だけの変数として扱うことができる。(スコープが効く)

_export:
  foo: 1

他にもrbやpy上で変数を取得したり、登録することが可能。

組み込み変数

digdagにはすでに定義されている組み込み変数が存在しています。
組み込み変数の一覧は以下。

http://docs.digdag.io/workflow_definition.html#using-variables

digdagのモード

digdagは3つのモードが存在している。
ローカルモード、サーバーモード、クライアントモードである。
モードといっても、実際にずっと動くのはサーバーモードだけ。ただローカルモードにはスケジューラ機能があるのでスケジューラ機能を使うなら動いてることになるね。

  • ローカルモードは即時実行するために使うモード。
  • サーバーモードは文字通りdigdagサーバーが立ち上がるモード。これはブラウザ上から管理画面にアクセスして書いたり実行したりできる。
  • クライアントモードはdigdagサーバーに対してCUIで命令実行するモード。

各種モードのコマンドリストは以下から。

http://docs.digdag.io/command_reference.html

Discussion