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

Cách sử dụng Boto3 để cập nhật bộ lập lịch của trình thu thập thông tin trong Danh mục dữ liệu keo AWS

Trong bài viết này, chúng ta sẽ xem cách cập nhật trình lên lịch của trình thu thập thông tin có trong tài khoản AWS.

Ví dụ

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để cập nhật bộ lập lịch của trình thu thập thông tin.

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 boto3 botocore các ngoại lệ để xử lý các ngoại lệ.

  • Bước 2: crawl_name trình lập lịch là các tham số bắt buộc trong hàm này.

  • Định dạng của bộ lập lịch phải là cron (cron_expression). Cron_Expression có thể được viết là (15 12 * *? *), tức là trình thu thập thông tin sẽ chạy hàng ngày lúc 12:15UTC.

  • Bước 3: Tạo phiên AWS bằng boto3 lib . Đảm bảo rằng tên_vùng đượ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 .

  • Bước 5: Bây giờ, hãy sử dụng update_crawler_schedule hàm và chuyển tham số crawl_name với tư cách là CrawlerName và trình lập lịch như Lịch trình.

  • Bước 6: Nó trả về siêu dữ liệu phản hồi và cập nhật trạng thái lịch biểu 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 khi cập nhật bộ lập lịch của trình thu thập thông tin.

Mã mẫu

Đoạn mã sau cập nhật trình lập lịch của trình thu thập thông tin -

import boto3
from botocore.exceptions import ClientError

def update_scheduler_of_a_crawler(crawler_name, scheduler)
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.update_crawler_schedule(CrawlerName=crawler_name,       Schedule=scheduler)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in update_scheduler_of_a_crawler: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in update_scheduler_of_a_crawler: " + e.__str__())
print(update_scheduler_of_a_crawler("Data Dimension","cron(15 12 * * ? *)"))

Đầu ra

{'ResponseMetadata': {'RequestId': '73e50130-*****************8e', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Mar 2021 07:26:55 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '73e50130-***************8e'}, 'RetryAttempts': 0}}