Tuyên bố sự cố - Sử dụng thư viện boto3 trong Python để lấy thông tin chi tiết của trình thu thập thông tin.
Ví dụ - Nhận thông tin chi tiết về trình thu thập thông tin, 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 - Crawler_name là tham số bắt buộc. Đây là một chuỗi nên người dùng chỉ có thể gửi một tên trình thu thập thông tin tại một thời điểm để tìm nạp thông tin chi tiết.
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ờ sử dụng get_crawler chức năng và vượt qua tên_trình thu thập thông tin .
Bước 6 - Nó trả về siêu dữ liệ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 trong khi kiểm tra công việc.
Ví dụ
Sử dụng mã sau để tìm nạp thông tin chi tiết của trình thu thập thông tin -
import boto3 from botocore.exceptions import ClientError def get_one_crawler_details(crawler_name:str) session = boto3.session.Session() glue_client = session.client('glue') try: crawler_details = glue_client.get_crawler(Name= crawler_name) return crawler_details except ClientError as e: raise Exception("boto3 client error in get_one_crawler_details: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in get_one_crawler_details: " + e.__str__()) print(get_one_crawler_details("crawler_for_s3_file_job"))
Đầu ra
{'Crawler': {'Name': 'crawler_for_s3_file_job', 'Role': 'glue-role', 'Targets': {'S3Targets': [{'Path': 's3://test/', 'Exclusions': []}], 'JdbcTargets': [], 'DynamoDBTargets': [], 'CatalogTargets': []}, 'DatabaseName': 'default', 'Classifiers': [], 'SchemaChangePolicy': {'UpdateBehavior': 'UPDATE_IN_DATABASE', 'DeleteBehavior': 'DEPRECATE_IN_DATABASE'}, 'State': 'READY', 'TablePrefix': 'prod_scdk_', 'CrawlElapsedTime': 0, 'CreationTime': datetime.datetime(2018, 9, 24, 20, 42, 7, tzinfo=tzlocal()), 'LastUpdated': datetime.datetime(2020, 4, 27, 14, 49, 12, tzinfo=tzlocal()), 'LastCrawl': {'Status': 'SUCCEEDED', 'LogGroup': '/aws-glue/crawlers', 'LogStream': 'crawler_for_s3_file_job', 'MessagePrefix': ************-90ad1', 'StartTime': datetime.datetime(2020, 4, 27, 14, 49, 19, tzinfo=tzlocal())}, 'Version': 15}, 'ResponseMetadata': {'RequestId': '8c7dcbde-***********************-774', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 11:34:32 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '805', 'connection': 'keep-alive', 'x-amzn-requestid': '8c7dcbde-**********************774'}, 'RetryAttempts': 0}}