🤖

③ FlowsとTasksを作成する Kestra

2023/05/21に公開

はじめに

前回に続き。Kestraを見ていきたと思います。今回はFlowとTaskを見て行きます。Kestra Fundamentalsを進めていきます

  • 今回作成するFlow下記になります
id: daisuke-tutorial
namespace: io.kestra.tutorial
labels:
  env: PRD
description: |
  # Kestra Tutorial
  As you notice, we can use markdown here.
tasks:
  - id: download
    type: io.kestra.plugin.fs.http.Download
    uri: "https://www.data.gouv.fr/fr/datasets/r/d33eabc9-e2fd-4787-83e5-a5fcfb5af66d"

Flows

  • 宣言型YAMLを使用してflowを定義します
  • flowはidnamespaceによって定義されます
    • idnamespaceにおいて一意である必要があります
id: kestra-tutorial
namespace: io.kestra.tutorial
labels:
  env: PRD
description: |
  # Kestra Tutorial
  As you notice, we can use markdown here.
  • より詳細はFlowsを参照してくださいしてください

Tasks

  • taskを書いてワークフローを作成します
    • taskはidとtype、typeに関するプロパティによって定義されます
    • サンプルではPythonスクリプトを実行します
tasks:
  - id: python
    type: io.kestra.core.tasks.scripts.Python
    inputFiles:
      main.py: |
        print("Hello World")
  • CTRL or ⌘ + SPACEでの補完機能も地味に便利です(taskは290以上あるようです)

サンプルフロー

  • これまでのことを踏まえて、冒頭で紹介したflowを再度見てみたいと思います。
  1. flowの作成
    • id, namespaceを付与します
    • labelをPRDとしています
    • descriptionでflowの説明を行います
  2. task
    • idを付与します
    • typeでダウンロードを行うためのプラグインを選択します
    • urlでダウンロード元を選択します
# 1 flow
id: daisuke-tutorial
namespace: io.kestra.tutorial
labels:
  env: PRD
description: |
  # Kestra Tutorial
  As you notice, we can use markdown here.
# 2 task
tasks:
  - id: download
    type: io.kestra.plugin.fs.http.Download
    uri: "https://www.data.gouv.fr/fr/datasets/r/d33eabc9-e2fd-4787-83e5-a5fcfb5af66d"
  • 上記の入力後「New execution」を実行します

その他

  • yaml作成時、横にドキュメントなどが表示されるのは非常にありがたいと思いました

  • ドキュメントでは各パラメータの説明や、デフォルト値などが記されています

  • 別ではフローの全体像も確認できます

Discussion