Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để sử dụng Boto3 để lấy số liệu của một / nhiều trình thu thập thông tin cụ thể từ Danh mục dữ liệu keo AWS?

Tuyên bố sự cố - Sử dụng thư viện boto3 trong Python để truy xuất các chỉ số của một trình thu thập thông tin được chỉ định.

Ví dụ - Truy xuất các chỉ số của một trình thu thập thông tin được chỉ định, crawl_for_s3_file_job.

Phương pháp tiếp cận / Thuật toán để giải quyết vấn đề này

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

Bước 2 - tên_trình thu thập thông tin là tham số bắt buộc. Đây là danh sách để người dùng có thể gửi một hoặc nhiều tên trình thu thập thông tin cùng một lúc để tìm nạp số liệu.

Bước 3 - Tạo phiên AWS bằng thư viện boto3. Đảm bảo rằng region_name được đề cập trong hồ sơ mặc định. Nếu nó không được đề cập, thì hãy chuyển region_name một cách rõ ràng trong khi tạo phiên.

Bước 4 - Tạo ứng dụng AWS cho keo dán.

Bước 5 - Bây giờ hãy sử dụng get_crawler_metrics hàm và chuyển tham số crawl_names và CrawlerNameList.

Bước 6 - Nó trả về các chỉ số của trình thu thập thông tin.

Bước 7 - Xử lý ngoại lệ chung nếu có sự cố xảy ra trong khi kiểm tra công việc.

Ví dụ

Sử dụng mã sau để truy xuất các chỉ số của một trình thu thập thông tin được chỉ định -

import boto3
from botocore.exceptions import ClientError

def retrieves_metrics_of_a_crawler(crawler_names:list)
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      crawler_details = glue_client.get_crawler_metrics(CrawlerNameList = crawler_names)
      return crawler_details
   except ClientError as e:
      raise Exception("boto3 client error in retrieves_metrics_of_a_crawler: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in retrieves_metrics_of_a_crawler: " + e.__str__())
print(retrieves_metrics_of_a_crawler(["crawler_for_s3_file_job"]))

Đầu ra

{'CrawlerMetricsList': [{'CrawlerName': crawler_for_s3_file_job,
'TimeLeftSeconds': 0.0, 'StillEstimating': False, 'LastRuntimeSeconds':
79.673, 'MedianRuntimeSeconds': 79.673, 'TablesCreated': 1,
'TablesUpdated': 0, 'TablesDeleted': 0}], 'ResponseMetadata':
{'RequestId': '680cf4ca-********0abe', 'HTTPStatusCode': 200,
'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:38:08 GMT', 'content-type':
'application/x-amz-json-1.1', 'content-length': '216', 'connection':
'keep-alive', 'x-amzn-requestid': '680cf4ca-******************0abe'},
'RetryAttempts': 0}}