Skip to content

iwashi623/gjobctl

Repository files navigation

gjobctl

AWS Glueをコンソール上からポチポチ変更していると、コミット履歴や設定変更の履歴が残らず、辛いと思うことが多々あったので作りました。

Glue Job にのみ関心を持つツールで、Glue のスクリプトファイルや設定ファイルを一つのリポジトリでまとめて管理したいときに欲しいと思われるAPIをコマンドライン上で実行できます。

Use gjobctl

準備

GlueJobのリポジトリ例

sample-job
├── gjobctl.yml  ## <- gjobctl設定ファイル
└── sample-job.json ## <- Glue Job定義ファイル
    └── script
        └── sample-job.py ## <- Jobスクリプト

example gjobctl.yml

region: ap-northeast-1
job_name: sample-job
job_setting_file: sample-job.json

json形式のGlue Job定義ファイルは、下記するgjobctl getコマンドを使うと簡単に作成できます。

List

Glue Job の一覧を取得するコマンドです。

$ gjobctl list
sample-job
hoge-job
piyo-job

Get

Glue Job の詳細情報を Json で取得するコマンドです。 ここで取得した情報は、Deploy などのコマンドを実行する際に使用できます。

$ gjobctl get <job-name>

Create

Jsonファイルをもとに、新規Glue Jobを作成するコマンドです。

$ gjobctl create
Successfully createsd Glue Job: sample-job
{
  "Job": {
    "Command": {
      "Name": "glueetl",
      "PythonVersion": "3",
      "ScriptLocation": "s3://your_bucket/scripts/sample-job.py"
    },
    "Name": "sample-job",
    "Role": "arn:aws:iam::XXXXXXXXXXX:role/SampleGlueMasterRole",
  }
}

option

json形式のJobの設定ファイルは"-f"オプションで任意の値を渡せます。
-f, --job-setting-file=JOB-SETTING-FILE

Update

Json ファイルをもとに Glue Job をアップデートするコマンドです。

$ gjobctl update sample-job.json
Successfully updatesd Glue Job: sample-job
{
  "Job": {
    "Command": {
      "Name": "glueetl",
      "PythonVersion": "3",
      "ScriptLocation": "s3://your_bucket/scripts/sample-job.py"
    },
    "Name": "sample-job",
    "Role": "arn:aws:iam::XXXXXXXXXXX:role/SampleGlueMasterRole",
  }
}

option

json形式のJobの設定ファイルの場所は、"-f"オプションで任意の値を渡せます。
-f, --job-setting-file=JOB-SETTING-FILE

ScriptDeploy

ローカルの Job スクリプトを S3 にアップロードするコマンドです。

$ gjobctl script-deploy <script-local-path> 

option

json形式のJobの設定ファイルは"-f"オプションで任意の値を渡せます。
-f, --job-setting-file=JOB-SETTING-FILE

Run

Glue Jobを実行するコマンドです。

※ 実行時のオプション引数はまだ対応していません。

$ gjobctl run <job-name>

GitHub Actions参考実装

こちら

Next..

  • テストの実装
  • Runコマンドで実行時のオプション引受け

About

Glue Jobをこねこねできるツール

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages