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

Làm cách nào để sử dụng Boto3 để nhận thông tin chi tiết của công việc được đánh dấu trong Danh mục dữ liệu keo AWS?

Ví dụ - Truy xuất thông tin chi tiết về công việc được đánh dấu là "book-job" trong Danh mục dữ liệu AWS Glue.

Tuyên bố sự cố - Sử dụng thư viện boto3 bằng Python để truy xuất thông tin chi tiết của công việc đã được đánh dấu trang trong Danh mục dữ liệu keo AWS.

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 - bookmarked_job_name là tham số bắt buộc. Nó phải có job_name đã được đánh dấu, nếu không nó sẽ ném EntityNotFoundException.

Bước 3 - Tạo phiên AWS bằng thư viện boto3. Đảm bảo rằng tên miền được đề cập trong hồ sơ mặc định. Nếu nó không được đề cập, thì hãy chuyển rõ ràng region_name 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_job_bookmark chức năng và chuyển bookmarked_job_name dưới dạng tham số JobName.

Bước 6 - Nó trả về các chi tiết liên quan đến mục nhập dấu trang. Lưu ý rằng nếu job_name không được đánh dấu trang, nó sẽ đưa ra một ngoại lệ là EntityNotFound .

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 chi tiết của công việc đã được đánh dấu trang trong Danh mục dữ liệu keo AWS -

import boto3
from botocore.exceptions import ClientError

def retrieves_details_of_bookmarked_job(bookmarked_job_name)
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_job_bookmark(JobName=bookmarked_job_name)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in retrieves_details_of_bookmarked_job: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in retrieves_details_of_bookmarked_job: " + e.__str__())
print(retrieves_details_of_bookmarked_job("book-job"))

Đầu ra

{'JobBookmarkEntry': {'JobName': 'book-job', 'Version': 8, 'Run': 2,
'Attempt': 2, 'PreviousRunId':
'jr_dee547c2f78422e34136aa12c85de010b823787833eee04fbf34bc9b8cb4f7b9',
'RunId':
'jr_a035fe15daa31e9a751f02876c26e5d11a829f2689803a9e9643bd61f70273e4',
'JobBookmark':
'{"gdf":{"jsonClass":"HadoopDataSourceJobBookmarkState","timestamps":{"R
UN":"1","HIGH_BAND":"900000","CURR_LATEST_PARTITION":"0","CURR_LATEST_PA
RTITIONS":"","CURR_RUN_START_TIME":"2020-10-
30T13:03:43.730Z","INCLUDE_LIST":""}}}'}, 'ResponseMetadata':
{'RequestId': 'bacf1497-***************996f05b3c1', 'HTTPStatusCode':
200, 'HTTPHeaders': {'date': 'Sun, 28 Feb 2021 13:00:19 GMT', 'contenttype': 'application/x-amz-json-1.1', 'content-length': '535',
'connection': 'keep-alive', 'x-amzn-requestid': 'bacf1497-
******************996f05b3c1'}, 'RetryAttempts': 0}}