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

Cách lấy chi tiết quy trình làm việc bằng Boto3

Trong bài viết này, chúng ta sẽ xem cách người dùng có thể lấy siêu dữ liệu tài nguyên của quy trình làm việc.

Ví dụ

Nhận thông tin chi tiết về quy trình làm việc từ Danh mục dữ liệu keo AWS được tạo trong tài khoản của bạn.

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để lấy siêu dữ liệu của quy trình làm việc được tạo trong tài khoản của bạn.

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: workflow_name là tham số bắt buộc cho chức năng này. Nó sẽ tìm nạp siêu dữ liệu của quy trình làm việc đã cho.

  • 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: Gọi cho get_workflow và chuyển workflow_name dưới dạng tham số Tên.

  • Bước 6: Nó trả về siêu dữ liệu của một quy trình làm việc nhất định.

  • 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.

Mã mẫu

Đoạn mã sau tìm nạp thông tin chi tiết của dòng công việc được tạo trong tài khoản người dùng -

import boto3
from botocore.exceptions import ClientError

def get_resource_maetadata_of_workflow(workflow_name):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_workflow(Name=workflow_name)
return response
   except ClientError as e:
      raise Exception("boto3 client error in get_resource_maetadata_of_workflow: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in get_resource_maetadata_of_workflow: " + e.__str__())
a = get_resource_maetadata_of_workflow('dev-aiml-naviga-ods-load')
print(a)

Đầu ra

{'Workflow': {'Name': 'dev-aiml-naviga-ods-load', 'DefaultRunProperties': {}, 'CreatedOn': datetime.datetime(2020, 5, 27, 3, 10, 57, 967000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2020, 5, 27, 3, 10, 57, 967000, tzinfo=tzlocal())}, 'StartedOn': datetime.datetime(2021, 2, 3, 16, 14, 48, 795000, tzinfo=tzlocal()), 'CompletedOn': datetime.datetime(2021, 2, 3, 16, 28, 6, 207000, tzinfo=tzlocal()), 'Status': 'COMPLETED', 'Statistics': {'TotalActions': 3, 'TimeoutActions': 0, 'FailedActions': 0, 'StoppedActions': 0, 'SucceededActions': 3, 'RunningActions': 0}}}, 'MissingWorkflows': [], 'ResponseMetadata': {'RequestId': 'b328d064-24ab-48c4-b058-852387a3d474', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 13:57:37 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '2655', 'connection': 'keep-alive', 'x-amzn-requestid': 'b328d064-24ab-48c4-b058-852387a3d474'}, 'RetryAttempts': 0}}