【AWS Glue】ジョブパラメータを利用する


ジョブパラメータ

AWS Glueではジョブ実行時にジョブパラメータを設定可能です。環境変数のようなもので、スクリプトの中でその変数を受け取ることが可能です。
同じスクリプトでも変数を変えることで挙動を変えることが可能となります。

ジョブパラメータの取得方法

import sys
from awsglue.utils import getResolvedOptions
args = getResolvedOptions(sys.argv, ['hoge_string', 'hoge_int'])
step_count = args['hoge_string']
store_name = args['hoge_int']

getResolvedOptions(sys.argv, ['arg_name_1', 'arg_name_2',...]) のように引数に受け取るパラメータ名を並べていくとジョブパラメータの連想配列が取得できます。あとはその配列のkeyに取得したいkeyを指定するだけでOKです。
またパラメータはすべてstring型なので数値として扱いたい場合はキャストしましょう。

設定方法(AWSコンソール)

AWSコンソールからは上記画像のようにパラメータを設定することが可能です。
ここでひとクセあるのが戦闘に--を付ける必要があるという点です。--をつけないとジョブパラメータとして認識してくれないので注意が必要です(どうして省略可能でないのでしょうか…)

設定方法(AWS CLI)

実行例

aws glue start-job-run --job-name "ジョブ名称" --arguments='--hoge_string="aiu", --hoge_int="123"'

ドキュメント
aws cliでは上記のように設定します。--argumentsというoptionで設定するのですがその際もかならず--というものが必要となります。
その他にもワーカーの数やワーカーのタイプなどが指定可能です。