Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách dùng Boto3 lấy chi tiết nhiều trigger cùng lúc

Đề bài − Sử dụng thư viện boto3 trong Python để lấy các trigger có sẵn trong tài khoản. Ví dụ: lấy chi tiết các trigger được phép trong tài khoản.

Cách tiếp cận/Thuật toán giải quyết

Bước 1 − Nhập boto3 và botocore exceptions để xử lý ngoại lệ.

Bước 2 − Không cần tham số cho hàm này. Nó sẽ lấy tất cả trigger liệt kê cho tài khoản người dùng và hiển thị metadata của từng trigger.

Bước 3 − Tạo phiên AWS bằng boto3. Đảm bảo region_name trong profile mặc định. Nếu không, truyền rõ ràng region_name khi tạo phiên.

Bước 4 − Tạo client AWS cho glue.

Bước 5 − Sử dụng hàm list_triggers để lấy tất cả job liệt kê trong tài khoản.

Bước 6 − Gọi batch_get_triggers và truyền tên job lấy được ở hàm trước.

Bước 7 − Nó trả về list_of_triggers và metadata của từng trigger.

Bước 8 − Xử lý ngoại lệ chung nếu có lỗi xảy ra khi kiểm tra job.

Ví dụ

Sử dụng code sau để lấy chi tiết từng trigger liệt kê trong tài khoản:

import boto3
from botocore.exceptions import ClientError

def get_resource_maetadata_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_maetadata_of_triggers: " + e.__str__())
    except Exception as e:
        raise Exception("Unexpected error in get_resource_maetadata_of_triggers: " + e.__str__())

a, b = get_resource_maetadata_of_triggers()
# Danh sách Triggers
print(a)
# Metadata tài nguyên của từng Trigger
print(b)

Kết quả

# Danh sách Triggers
{'TriggerNames': ['01_PythonShellTest1'], 'NextToken': 'eyJleHBpcmF0aW9uIjp7InNlY29uZHMiOjE2MTQxNzE2OTksIm5hbm9zIjo1MTYwMDAwMDB9LCJsYXN0RXZhbHVhdGVkS2V5Ijp7ImpvYk5hbWUiOnsicCI6InRpY2stZGF0YS10ZXN0In0sImFjY291bnRJZCI6eyJzIjoiNzgyMjU4NDg1ODQxIn0sImpvYklkIjp7InMiOiJqXzhmZDc2MzhkYTcyMGQ5Yzk1YTg4MTlkOTgxNTE5MDdjM2JmYWI3ZGYxNGUwNGExZGM0ZTIzZjViYjczM2M2ZTYifX19', '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}
# Metadata tài nguyên của từng Trigger
{'Triggers': [{'Name': '01_PythonShellTest1', 'WorkflowName': 'arn:aws:iam::1234:role/dev-edl', 'Id': 'string', 'Type': 'string', 'State': 'CREATING|CREATED|ACTIVATING|ACTIVATED|DEACTIVATING|DEACTIVATED|DELETING|UPDATING', 'Description': 'string', 'Schedule': 'string'}]}