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

Boto3を使って複数のトリガーの詳細を一括取得する方法

課題

Pythonのboto3ライブラリを使用して、AWSアカウント内で利用可能なトリガーの一覧を取得し、それぞれのトリガーの詳細なメタデータを一度に取得する方法を解説します。

アプローチとアルゴリズム

ステップ1 − 例外処理のために、boto3とbotocore.exceptions(ClientError)をインポートします。

ステップ2 − この操作には特別なパラメータは不要です。ユーザーアカウントに登録されているすべてのトリガーを取得し、各トリガーのメタデータを表示できます。

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

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

ステップ5 − list_triggers関数を使用して、アカウントに登録されているすべてのトリガー名を取得します。

ステップ6 − batch_get_triggersを呼び出し、前のステップで取得したトリガー名のリストを渡します。

ステップ7 − 実行結果として、トリガーのリストおよび各トリガーのメタデータが返されます。

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

実装例

アカウントに登録されている各トリガーの詳細を取得するには、以下のコードを使用します。

import boto3
from botocore.exceptions import ClientError

def get_resource_metadata_of_triggers():
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        list_of_triggers = glue_client.list_triggers()
        response = glue_client.batch_get_triggers(TriggerNames=list_of_triggers['TriggerNames'])

        return list_of_triggers, response
    except ClientError as e:
        raise Exception("boto3 client error in get_resource_metadata_of_triggers: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in get_resource_metadata_of_triggers: " + e.__str__())

a, b = get_resource_metadata_of_triggers()
# トリガーの一覧
print(a)
# 各トリガーのリソースメタデータ
print(b)

出力結果

#List of Triggers
{'TriggersNames': ['01_PythonShellTest1'],
'NextToken':
'eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQxNzE2OTksIm5hbm9zIjo1MTYwMDAwMDB
9LCJsYXN0RXZhbHV
zFiMzAzNzAxMzRmNDk3NWM3M2MyMjhjYTk5MDgzZTA3YjQ0ZWEyOTZlIn19fQ==',
'ResponseMetadata': {'RequestId': '5d3eb19a-41f5-b24e-2d59ed9664b5',
'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Tue, 23 Feb 2021
13:01:39 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '1134', 'connection': 'keep-alive', 'x-amzn-requestid':
'5d3eb19a-41f5-b24e-2d59ed9664b5'}, 'RetryAttempts': 0}}

#Resource metadata of each Triggers
{'Triggers': [{'Name': '01_PythonShellTest1', 'WorkflowName':
'arn:aws:iam::1234:role/dev-edl, 'Id': 'string', 'Type': 'string',
'State':
'CREATING'|'CREATED'|'ACTIVATING'|'ACTIVATED'|'DEACTIVATING'|'DEACTIVATE
D'|'DELETING'|'UPDATING', 'Description': 'string', 'Schedule': 'string'
}]}

  1. PythonとBoto3を使ってAWS Glueクローラーの詳細情報を取得する方法

    この記事では、PythonのBoto3ライブラリを使用して、AWS Glueクローラーの詳細情報を取得する方法を解説します。例として、「crawler_for_s3_file_job」というクローラーの詳細を取得するケースを見ていきましょう。 問題を解決するためのアプローチとアルゴリズム ステップ1: 例外を適切に処理できるよう、boto3とbotocore.exceptionsをインポートします。 ステップ2: crawler_nameは必須パラメータです。リスト形式で指定するため、複数のクローラー名を一度に送信して、まとめて詳細情報を取得することも可能です。 ステップ3: boto

  2. PythonのBoto3ライブラリを使ってAWS S3のバケット一覧を取得する方法

    問題の概要: Pythonのboto3ライブラリを使用して、AWSアカウント内に存在するすべてのS3バケットの一覧を取得します。例: BUCKET_1、BUCKET_2、BUCKET_3 のようなバケット名の一覧を取得します。boto3とはboto3は、PythonからAWSの各種サービスを操作するための公式SDKです。S3やEC2、DynamoDBなど、多くのAWSリソースをPythonコードから簡単に扱えます。使用前には pip install boto3 でインストールしておき、AWSの認証情報(アクセスキー・シークレットキー)が適切に設定されていることを確認してください。解決のための手