Help us understand the problem. What is going on with this article?

Digdag公式ドキュメントからDigdagを学ぶ-Getting started

Digdagについて

DigdagはOpenソースのマルチクラウドワークフローエンジンの事です。
簡単に言うとなんなかの仕事を順序に処理する流れを手伝ってくれるツールかと思いました。

目標

Digdagについての本などがないためDigdagの公式サイトのドキュメントを翻訳しながらQiitaに整理したいと思います。
http://docs.digdag.io/getting_started.html
ドキュメントは英語になっています。
勉強するのが目的なので誤訳などあると思います。
今日はGetting Started部分からやります。
DigdagのRubyを使ってRailsにバッチを作るまでが最後の目標になります。

#目次

以下のような内容になります。
Getting started
Architecture
Concepts
Workflow definition
Scheduling workflow
Operators
Command reference
Language API -Ruby
Digdagで環境毎に設定値を変える(RubyOnRails)
Digdagを用いてRubyOnRails環境でバッチ実装

Getting started

1. 最新バージョンのDigdagダウンロードと設置

Digdagは実行ファイルです。curlコマンドを使って~/binにファイルを設置できます。

$ curl -o ~/bin/digdag --create-dirs -L "https://dl.digdag.io/digdag-latest"
$ chmod +x ~/bin/digdag
$ echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
$ source ~/.bashrc

digdag --helpが実行できれば環境設定完了です。

zshを使う方は~/.bashrc~/.zshrcに変更してください。

Windows

PowerShell -Command "& {[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::TLS12; mkdir -Force $env:USERPROFILE\bin; Invoke-WebRequest http://dl.digdag.io/digdag-latest.jar -OutFile $env:USERPROFILE\bin\digdag.bat}"
setx PATH "%PATH%;%USERPROFILE%\bin"

2. サンプルを実行してみる

digdag init <dir>コマンドはサンプルWorkflowを生成する。

$ digdag init mydag
$ cd mydag
$ digdag run 

digdag init mydagコマンドで以下のようなサンプルコード(mydag.dig)が生成される

mayday.dig
timezone: UTC

+setup:
  echo>: start ${session_time}

+disp_current_date:
  echo>: ${moment(session_time).utc().format('YYYY-MM-DD HH:mm:ss Z')}

+repeat:
  for_each>:
    order: [first, second, third]
    animal: [dog, cat]
  _do:
    echo>: ${order} ${animal}
  _parallel: true

+teardown:
  echo>: finish ${session_time}

digdag runWorkflowが実行された
実行結果
スクリーンショット 2020-07-09 13.19.57.png

次回はArchitecture

zozotech
70億人のファッションを技術の力で変えていく
https://tech.zozo.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away