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

Boto3を使ってAWS Glueのジョブを削除する方法を徹底解説

AWS Glueは、ETL(抽出・変換・ロード)処理を簡単に実行できるサーバーレスのデータ統合サービスです。本記事では、Pythonのboto3ライブラリを使用して、自分のAWSアカウント内に作成済みのGlueジョブを削除する方法を、ステップごとにわかりやすく解説します。

課題

Pythonのboto3ライブラリを使って、AWSアカウント内に作成されたGlueジョブを削除します。

例: アカウント内に作成された「transfer_from_s3」というGlueジョブを削除します。

解決のためのアプローチとアルゴリズム

ステップ1: 例外処理のために、boto3とbotocoreの例外モジュールをインポートします。

ステップ2: AWS Glue Catalogから削除したいジョブ名(job_name)をパラメータとして渡します。

ステップ3: boto3ライブラリでAWSセッションを作成します。デフォルトプロファイルにregion_nameが設定されていることを確認してください。設定されていない場合は、セッション作成時にregion_nameを明示的に指定する必要があります。

ステップ4: Glue用のAWSクライアントを作成します。

ステップ5: delete_job関数を使用し、ジョブ名をJobNameパラメータとして渡します。

ステップ6: ジョブが削除されると、レスポンスメタデータが返されます。

ステップ7: 処理中に予期しない問題が発生した場合に備え、汎用的な例外ハンドリングを実装します。

注意: この操作が完了すると、指定したジョブ定義が削除されます。なお、AWS Glueに該当するジョブが存在しない場合でも例外はスローされず、実際にジョブを削除した場合と同じ出力が返される点に留意してください。

サンプルコード

以下のコードを使用すると、AWS GlueからGlueジョブを削除できます。

import boto3
from botocore.exceptions import ClientError

def delete_a_glue_job(job_name):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.delete_job(JobName=job_name)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in delete_a_glue_job: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in delete_a_glue_job: " + e.__str__())

print(delete_a_glue_job("transfer_from_s3"))

実行結果

{'JobName': 'transfer_from_s3', 'ResponseMetadata': {'RequestId':
'126adb54-f0a0-4558-b345-d6a4e62674f3', 'HTTPStatusCode': 200,
'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 15:53:27 GMT', 'content-type':
'application/x-amz-json-1.1', 'content-length': '22', 'connection':
'keep-alive', 'x-amzn-requestid': '126adb54-……-d6a4e62674f3'},
'RetryAttempts': 0}}

上記の出力のように、HTTPStatusCode: 200が返されれば、ジョブの削除は正常に完了しています。ResponseMetadataにはリクエストIDやHTTPステータスコードなどの詳細情報が含まれており、トラブルシューティングの際にも役立ちます。

  1. Boto3を使ってAWS Glueジョブの存在を確認する方法

    はじめにPythonのboto3ライブラリを使用すると、指定したAWS Glueジョブが存在するかどうかを簡単に確認できます。本記事では、例として run_s3_file_job というジョブがAWS Glue上に存在するかどうかをチェックする方法を解説します。解決のためのアプローチとアルゴリズムステップ1 − boto3とbotocoreの例外クラス(exceptions)をインポートし、例外処理に備えます。ステップ2 − 関数の引数として job_name を受け取れるようにします。ステップ3 − boto3ライブラリを使ってAWSセッションを作成します。デフォルトプロファイルに regi

  2. PythonのBoto3ライブラリを使ってAWS S3からオブジェクトを削除する方法

    この記事では、PythonのBoto3ライブラリを使用して、AWS S3バケットからオブジェクトを削除する方法を解説します。例: S3の「Bucket_1/testfolder」から「test.zip」を削除します。解決のためのアプローチとアルゴリズムステップ1 − boto3とbotocoreの例外処理モジュール(ClientError)をインポートします。ステップ2 − 関数の引数としてS3ファイルパス(s3_files_path)を受け取ります。ステップ3 − 渡されたパスが「s3://bucket_name/key」というAWS形式に準拠しているかどうかを検証します。ステップ4 − b