Python
 Computer >> コンピューター >  >> プログラミング >> Python

PythonでBoto3ライブラリを使用してGlueジョブを実行するにはどうすればよいですか?


問題の説明 − Pythonでboto3ライブラリを使用して、接着ジョブを実行します。たとえば、ジョブrun_s3_file_jobを実行します。

この問題を解決するためのアプローチ/アルゴリズム

ステップ1 −例外を処理するためにboto3およびbotocore例外をインポートします。

ステップ2 − job_nameは必須パラメーターであり、argumentsは関数のオプションパラメーターです。実行するために引数を取るジョブはほとんどありません。その場合、引数はdictとして渡すことができます。

例:arguments ={‘arguments1’ =‘value1’、‘arguments2’ =‘value2’}

ジョブが引数を取らない場合は、job_nameを渡すだけです。

ステップ3 −boto3ライブラリを使用してAWSセッションを作成します。 region_nameがデフォルトのプロファイルに記載されていることを確認してください。言及されていない場合は、セッションの作成時にregion_nameを明示的に渡します。

ステップ4 −接着剤用のAWSクライアントを作成します。

ステップ5 −ここで、start_job_run関数を使用し、必要に応じてJobNameと引数を渡します。

ステップ6 −ジョブが開始されると、job_run_idにジョブのメタデータが提供されます。

ステップ7 −ジョブのチェック中に問題が発生した場合は、一般的な例外を処理します。

次のコードを使用して、既存の接着ジョブを実行します-

import boto3
from botocore.exceptions import ClientError

def run_glue_job(job_name, arguments = {}):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      job_run_id = glue_client.start_job_run(JobName=job_name, Arguments=arguments)
   return job_run_id
   except ClientError as e:
      raise Exception( "boto3 client error in run_glue_job: " + e.__str__())
   except Exception as e:
      raise Exception( "Unexpected error in run_glue_job: " + e.__str__())

print(run_glue_job("run_s3_file_job"))

出力

{'JobRunId':
'jr_5f8136286322ce5b7d0387e28df6742abc6f5e6892751431692ffd717f45fc00',
'ResponseMetadata': {'RequestId': '36c48542-a060-468b-83ccb067a540bc3c', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 13
Feb 2021 13:36:50 GMT', 'content-type': 'application/x-amz-json-1.1',
'content-length': '82', 'connection': 'keep-alive', 'x-amzn-requestid':
'36c48542-a060-468b-83cc-b067a540bc3c'}, 'RetryAttempts': 0}}

  1. Pythonプログラムを実行する方法は?

    コードを記述したら、コードを実行して実行し、出力を取得する必要があります。プログラムを実行すると、コードが正しく記述され、目的の出力が生成されるかどうかを確認できます。 Pythonプログラムの実行は非常に簡単な作業です。 IDLEで実行 IDLEでPythonプログラムを実行するには、指定された手順に従います- Pythonコードを記述して保存します。 プログラムを実行するには、[モジュールの実行]に移動します または、F5をクリックするだけです。 コマンドラインで実行 Pythonスクリプトファイルは「.py」拡張子で保存されます。 Pythonスクリプトを保存したら

  2. Tkinter Pythonでスレッドを使用する方法は?

    Tkinterでは、スレッド化を使用して一度に複数の関数を呼び出すことができます 。アプリケーション内の一部の機能の非同期実行を提供します。 Pythonでスレッドを使用するために、スレッドというモジュールをインポートできます。 スレッドをサブクラス化します クラス。新しいクラス内で、実行を上書きする必要があります メソッドを実行し、そこでロジックを実行します。 したがって、基本的にスレッドを使用すると、一度に複数の作業を行うことができます。アプリケーションでスレッド化を実現するために、Tkinterは Thread()を提供します 機能。 例を挙げて、しばらくスリープしてから別の関数を