Boto3を使ってAWS Glueデータカタログからワークフローを削除する方法を解説
AWS Glueのデータカタログ上で管理しているワークフローは、Pythonのboto3ライブラリを使えば簡単に削除できます。本記事では、実際のコード例とともに、その手順をわかりやすく解説します。
やりたいこと
ユーザーがAWSデータカタログからワークフローを削除したいケースを想定します。
例:自分のアカウントから「test」という名前のワークフローを削除する。
課題:Pythonのboto3ライブラリを使用して、アカウント内に存在するワークフローを削除すること。
解決のための手順・アルゴリズム
ステップ1:例外処理のために、boto3およびbotocore.exceptionsをインポートします。
ステップ2:AWS Glue Catalogから削除したいワークフローの名前(workflow_name)をパラメータとして渡せるようにします。
ステップ3:boto3ライブラリを使ってAWSセッションを作成します。デフォルトプロファイルにregion_nameが設定されていることを確認してください。設定されていない場合は、セッション作成時に明示的にregion_nameを指定する必要があります。
ステップ4:Glue用のAWSクライアントを作成します。
ステップ5:delete_workflowを呼び出し、Nameパラメータとしてworkflow_nameを渡します。
ステップ6:これによりワークフローが削除され、レスポンスメタデータが返されます。なお、対象のワークフローがAWSデータカタログに存在しない場合でも、例外はスローされない点に注意してください。
ステップ7:処理中に何らかの問題が発生した場合に備えて、汎用例外のハンドリングを行います。
サンプルコード
以下のコードを使用すると、アカウント内に登録されているワークフローを削除できます。
import boto3
from botocore.exceptions import ClientError
def delete_a_workflow(workflow_name):
session = boto3.session.Session()
glue_client = session.client('glue')
try:
response = glue_client.delete_workflow(Name=workflow_name)
return response
except ClientError as e:
raise Exception("boto3 client error in delete_a_workflow: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in delete_a_workflow: " + e.__str__())
print(delete_a_workflow("test"))実行結果
コードを実行すると、以下のようなレスポンスが返されます。HTTPStatusCodeが200であれば、ワークフローが正常に削除されたことを意味します。
{'Name': 'test', 'ResponseMetadata': {'RequestId': '……………-…………………-59a9bc817e0f', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 21 Feb 2021 05:37:11 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '35', 'connection': 'keep-alive', 'x-amzn-requestid': …………………-59a9bc817e0f'}, 'RetryAttempts': 0}}まとめ
boto3のglueクライアントに対してdelete_workflowメソッドを呼び出すだけで、AWS Glueデータカタログ上のワークフローを簡単に削除できます。削除対象が存在しない場合でもエラーにはならないため、冪等性のあるスクリプトとして安心して利用できるのが特徴です。ただし、削除操作は元に戻せないため、本番環境で実行する前には対象のワークフロー名を十分に確認することをおすすめします。
-
Boto3を使ってAWS Glueデータカタログからクローラーを削除する方法
本記事では、Pythonのboto3ライブラリを使用して、AWSアカウント内に作成されたGlueクローラーを削除する手順を解説します。AWS Glueのクローラーは、S3などのデータソースをスキャンしてデータカタログにテーブル定義を作成する重要なコンポーネントですが、不要になったクローラーは適切に削除することでリソースを整理できます。 課題 − Pythonのboto3ライブラリを使って、自分のアカウントに作成されたクローラーを削除する。 例 − アカウントに作成された「Portfolio」という名前のクローラーを削除する。 問題解決のアプローチとアルゴリズム ステップ1 − 例外処理のため
-
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