Boto3を使ってAWS Glueデータカタログのワークフローを停止する方法
この記事では、AWSアカウント内に存在するワークフローを停止する方法について解説します。
概要
課題:Pythonのboto3ライブラリを使用して、実行中のワークフローを停止します。
解決のための手順・アルゴリズム
ステップ1:例外を処理するために、boto3とbotocoreの例外クラスをインポートします。
ステップ2:この関数では、workflow_name(ワークフロー名)とrun_id(実行ID)が必須パラメータとなります。
ステップ3:boto3ライブラリを使用してAWSセッションを作成します。デフォルトプロファイルにregion_name(リージョン名)が設定されていることを確認してください。設定されていない場合は、セッション作成時に明示的にregion_nameを渡す必要があります。
ステップ4:glue用のAWSクライアントを作成します。
ステップ5:stop_workflow_run関数を使用し、パラメータとしてworkflow_nameをNameに、run_idをRunIdに指定して呼び出します。
ステップ6:レスポンスメタデータが返され、ワークフローが停止されます。
ステップ7:ワークフローの停止中に問題が発生した場合に備えて、汎用的な例外処理を実装します。
サンプルコード
以下のコードは、実行中のワークフローを停止します。
import boto3
from botocore.exceptions import ClientError
def stop_a_workflow(workflow_name, run_id):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.stop_workflow_run(Name=workflow_name, RunId=run_id)
return response
except ClientError as e:
raise Exception("boto3 client error in stop_a_workflow: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in stop_a_workflow: " + e.__str__())
print(stop_a_workflow("test-daily"))
出力結果
{'RunId': 'wr_64e880240692fddd5e1b19aed587f856bc20a96f54bc', 'ResponseMetadata': {'RequestId': '782e953b-8ee3-4876-9b2c-cd35e147b513', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Mar 2021 08:11:02 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '79', 'connection': 'keep-alive', 'x-amzn-requestid': '782e953b-********************************13'}, 'RetryAttempts': 0}}上記の出力では、HTTPステータスコード200が返されており、ワークフローが正常に停止されたことがわかります。RunIdには対象のワークフロー実行の識別子が含まれています。
-
Boto3を使ってAWS Glueデータカタログからデータベースを削除する方法
課題Pythonのboto3ライブラリを使用して、自分のAWSアカウント内に作成されたデータベースを削除します。例 − アカウントに作成された「Portfolio」というデータベースを削除します。解決のためのアプローチとアルゴリズムステップ1 − 例外をハンドリングするために、boto3とbotocoreの例外モジュールをインポートします。ステップ2 − AWS Glue Catalogから削除したいデータベース名を database_name パラメータとして渡します。ステップ3 − boto3ライブラリを使ってAWSセッションを作成します。デフォルトプロファイルに region_name
-
Boto3を使ってAWS Glueデータカタログからクローラーを削除する方法
本記事では、Pythonのboto3ライブラリを使用して、AWSアカウント内に作成されたGlueクローラーを削除する手順を解説します。AWS Glueのクローラーは、S3などのデータソースをスキャンしてデータカタログにテーブル定義を作成する重要なコンポーネントですが、不要になったクローラーは適切に削除することでリソースを整理できます。 課題 − Pythonのboto3ライブラリを使って、自分のアカウントに作成されたクローラーを削除する。 例 − アカウントに作成された「Portfolio」という名前のクローラーを削除する。 問題解決のアプローチとアルゴリズム ステップ1 − 例外処理のため