Boto3を使ってAWS Glue Data Catalogからジョブに関連付けられたすべてのトリガーの詳細を取得する方法
本記事では、AWS Glue Data Catalogからジョブに関連付けられたすべてのトリガーの詳細情報を取得する方法について解説します。
例
ジョブ employee_details に関連付けられたすべてのトリガーの詳細を取得するケースを見ていきましょう。
課題: Pythonの boto3 ライブラリを使用して、特定のジョブに関連付けられたすべてのトリガーの詳細情報を取得すること。
解決のための手順・アルゴリズム
ステップ1: 例外処理のために boto3 および botocore の例外モジュールをインポートします。
ステップ2: job_name はこの関数のオプションパラメータです。job_name を指定した場合、そのジョブに関連付けられ、かつ当該ジョブを開始できるトリガーのみが取得されます。該当するトリガーが存在しない場合は、すべてのトリガーが返されます。デフォルト値は None であるため、関数呼び出し時に job_name を渡さなければ、すべてのトリガーの詳細が返される仕組みです。
ステップ3: boto3ライブラリ を使用してAWSセッションを作成します。デフォルトプロファイルに region_name が設定されていることを確認してください。設定されていない場合は、セッション作成時に明示的に region_name を指定する必要があります。
ステップ4: glue 用のAWSクライアントを作成します。
ステップ5: get_triggers を呼び出し、job_name を DependentJobName パラメータとして渡します。
ステップ6: このジョブに関連付けられたトリガーの詳細情報が返却されます。
ステップ7: ジョブの確認中に問題が発生した場合に備え、汎用例外のハンドリングを行います。
サンプルコード
以下のコードは、ジョブに関連付けられたすべてのトリガーの詳細を取得します。
import boto3
from botocore.exceptions import ClientError
def get_details_of_triggers(job_name=None):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.get_triggers(DependentJobName=job_name)
return response
except ClientError as e:
raise Exception("boto3 client error in get_details_of_triggers: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in get_details_of_triggers: " + e.__str__())
a = get_details_of_triggers('employee_details')
print(a)実行結果
{'Triggers': [{'Name': '01_PythonShellTest1', 'WorkflowName': 'arn:aws:iam::1234:role/dev-edl', 'Id': 'string', 'Type': 'SCHEDULED'|'CONDITIONAL'|'ON_DEMAND', 'State': 'CREATING'|'CREATED'|'ACTIVATING'|'ACTIVATED'|'DEACTIVATING'|'DEACTIVATED'|'DELETING'|'UPDATING', 'Description': 'string', 'Schedule': 'string'}]}まとめ
boto3の get_triggers APIを活用すれば、DependentJobName パラメータにジョブ名を指定するだけで、該当ジョブに関連付けられたトリガーの一覧を簡単に取得できます。トリガー名、タイプ(SCHEDULED / CONDITIONAL / ON_DEMAND)、状態、スケジュールなどの情報が含まれたレスポンスを受け取ることができ、AWS Glueワークフローの管理や自動化に役立ちます。
-
Boto3を使ってAWS Glue Data Catalogからテーブルを削除する方法
はじめにPythonのboto3ライブラリを使用すると、AWS Glue Data Catalogに作成したテーブルをプログラムから簡単に削除できます。本記事では、boto3を使ってアカウント内のデータベースからテーブルを削除する手順を、サンプルコードとともにわかりやすく解説します。課題Pythonのboto3ライブラリを使って、自分のアカウントに作成されたテーブルを削除します。例: アカウント内のデータベース「test」から、「security」という名前のテーブルを削除します。解決のためのアプローチとアルゴリズム以下の手順でテーブルを削除できます。ステップ1: boto3と、例外処理のため
-
Boto3を使ってAWS Glueデータカタログからクローラーを削除する方法
本記事では、Pythonのboto3ライブラリを使用して、AWSアカウント内に作成されたGlueクローラーを削除する手順を解説します。AWS Glueのクローラーは、S3などのデータソースをスキャンしてデータカタログにテーブル定義を作成する重要なコンポーネントですが、不要になったクローラーは適切に削除することでリソースを整理できます。 課題 − Pythonのboto3ライブラリを使って、自分のアカウントに作成されたクローラーを削除する。 例 − アカウントに作成された「Portfolio」という名前のクローラーを削除する。 問題解決のアプローチとアルゴリズム ステップ1 − 例外処理のため