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

Cách lấy chi tiết về tất cả các trình kích hoạt liên quan đến công việc từ danh mục Dữ liệu keo AWS 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 chi tiết về tất cả các trình kích hoạt liên quan đến công việc từ Danh mục dữ liệu AWS Glue.

Ví dụ

Nhận chi tiết về tất cả các trình kích hoạt được liên kết với một công việc - 'worker_details' .

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để nhận chi tiết về tất cả các trình kích hoạt được liên kết với một công việc.

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: job_name là tham số tùy chọn cho chức năng này. Nếu job_name được cung cấp, nó truy xuất tất cả các trình kích hoạt được liên kết với cùng một công việc và có thể bắt đầu công việc này. Tuy nhiên, nếu không có trình kích hoạt như vậy, nó sẽ trả về tất cả các trình kích hoạt. Theo mặc định, giá trị là Không, vì vậy nếu job_name không được chuyển khi gọi hàm này, nó sẽ trả về chi tiết của tất cả các trình kích hoạt.

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

  • Bước 5: Gọi cho get_triggers và vượt qua job_name DependentJobName

  • Bước 6: Nó trả về chi tiết của các trình kích hoạt được liên kết với công việc này.

  • 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 chi tiết của tất cả các trình kích hoạt được liên kết với một công việc -

import boto3
from botocore.exceptions import ClientError

def get_details_of_triggers(job_name=None):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_triggers(DependentJobName=job_name)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in get_details_of_triggers: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in get_details_of_triggers: " + e.__str__())
a = get_details_of_triggers('employee_details')
print(a)

Đầu ra

{'Triggers': [{'Name': '01_PythonShellTest1', 'WorkflowName': 'arn:aws:iam::1234:role/dev-edl, 'Id': 'string', 'Type': 'SCHEDULED'|'CONDITIONAL'|'ON_DEMAND', 'State': 'CREATING'|'CREATED'|'ACTIVATING'|'ACTIVATED'|'DEACTIVATING'|'DEACTIVATED'|'DELETING'|'UPDATING', 'Description': 'string', 'Schedule': 'string'
}]}