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

Boto3を使ってAWS Glueリソースからタグを削除する方法を解説

本記事では、Pythonのboto3ライブラリを使用して、AWS Glueリソースからタグを削除する方法について詳しく解説します。

実行例

AWS Glueデータベースに設定されているタグ「glue-db: tests」を削除するケースを例に説明します。

課題: Pythonのboto3ライブラリを使って、AWS Glueリソースのタグを削除することです。

問題を解決するためのアプローチと手順

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

  • ステップ2: 関数にはresource_arn(リソースARN)とtags_list(削除するタグのキーリスト)という2つの必須パラメータが必要です。

各リソースタイプに応じたresource_arnの形式は以下のとおりです。

カタログ(Catalog)arn:aws:glue:region:account-id:catalog
データベース(Database)arn:aws:glue:region:account-id:database/database name
テーブル(Table)arn:aws:glue:region:account-id:table/database name/table name
接続(Connection)arn:aws:glue:region:account-id:connection/connection name
クローラ(Crawler)arn:aws:glue:region:account-id:crawler/crawler-name
ジョブ(Job)arn:aws:glue:region:account-id:job/job-name
トリガー(Trigger)arn:aws:glue:region:account-id:trigger/trigger-name
開発エンドポイント(Development endpoint)arn:aws:glue:region:account-id:devEndpoint/development-endpoint-name
機械学習変換(ML Transform)arn:aws:glue:region:account-id:mlTransform/transform-id

tags_listは["key1","key2"...]のように、削除したいタグのキー名を配列形式で指定します。

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

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

  • ステップ5: untag_resource関数を呼び出し、ResourceArnパラメータにresource_arnを、TagsToRemoveパラメータにtags_listを渡します。

  • ステップ6: レスポンスメタデータが返却され、リソースから指定したタグが削除されます。

  • ステップ7: タグ削除中に何らかのエラーが発生した場合に備えて、汎用的な例外ハンドリングを行います。

サンプルコード

以下のコードを使用してタグを削除できます。

import boto3
from botocore.exceptions import ClientError

def remove_tags_in_resource(resource_arn, tags_list):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.untag_resource(ResourceArn=resource_arn, TagsToRemove=tags_list)
        return response
    except ClientError as e:
        raise Exception("boto3 client error in remove_tags_in_resource: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in remove_tags_in_resource: " + e.__str__())

tags_list = ["glue-db"]
print(remove_tags_in_resource("arn:aws:glue:us-east-1:1122225*****88:database/test-db", tags_list))

実行結果

{'ResponseMetadata': {'RequestId': 'c9f418b0-***************-fb96', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Fri, 02 Apr 2021 08:04:54 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '27', 'connection': 'keep-alive', 'x-amzn-requestid': 'c9f418b0-******************-fb96'}, 'RetryAttempts': 0}}

HTTPステータスコード「200」が返されれば、タグが正常に削除されたことを意味します。エラーが発生した場合は、例外メッセージに原因が出力されるため、ARNの形式やタグキーの指定内容を再確認してください。

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

    AWS Glueは、ETL(抽出・変換・ロード)処理を簡単に実行できるサーバーレスのデータ統合サービスです。本記事では、Pythonのboto3ライブラリを使用して、自分のAWSアカウント内に作成済みのGlueジョブを削除する方法を、ステップごとにわかりやすく解説します。 課題 Pythonのboto3ライブラリを使って、AWSアカウント内に作成されたGlueジョブを削除します。 例: アカウント内に作成された「transfer_from_s3」というGlueジョブを削除します。 解決のためのアプローチとアルゴリズム ステップ1: 例外処理のために、boto3とbotocoreの例外モジュール

  2. Boto3を使ってAWS Glueデータカタログからクローラーを削除する方法

    本記事では、Pythonのboto3ライブラリを使用して、AWSアカウント内に作成されたGlueクローラーを削除する手順を解説します。AWS Glueのクローラーは、S3などのデータソースをスキャンしてデータカタログにテーブル定義を作成する重要なコンポーネントですが、不要になったクローラーは適切に削除することでリソースを整理できます。 課題 − Pythonのboto3ライブラリを使って、自分のアカウントに作成されたクローラーを削除する。 例 − アカウントに作成された「Portfolio」という名前のクローラーを削除する。 問題解決のアプローチとアルゴリズム ステップ1 − 例外処理のため