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

Cách lấy chi tiết về nhiều định nghĩa hàm trong cơ sở dữ liệu từ Danh mục dữ liệu AWS bằng Boto3

Hãy xem cách người dùng có thể nhận chi tiết về nhiều định nghĩa chức năng từ Danh mục dữ liệu keo AWS.

Ví dụ

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để nhận chi tiết về nhiều định nghĩa hàm có trong (các) cơ sở dữ liệu từ Danh mục dữ liệu AWS Glue.

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: database_name và regular_pattern là các tham số tùy chọn. Nếu thông tin chi tiết không được cung cấp cho những điều này, hàm sẽ tìm nạp định nghĩa của tất cả các hàm có trong tài khoản Người dùng AWS. Nếu database_name được cung cấp nhưng thường_pattern không được cung cấp, sau đó nó tìm nạp tất cả các chức năng trong một cơ sở dữ liệu nhất định. Nếu cả hai tham số đều được cung cấp, thì nó sẽ tìm nạp định nghĩa của hàm phù hợp theo regular_pattern . Nếu chỉ thường_pattern được cung cấp, nó tìm nạp tất cả các chức năng phù hợp với regular_pattern hiện trong tài khoản người dùng AWS

  • 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_multiple_aries_definition và chuyển database_name dưới dạng DatabaseName và thường_pattern dưới dạng tham số Mẫu.

  • Bước 6: Nó trả về định nghĩa của nhiều hàm theo tham số được cung cấp.

  • Bước 7: Xử lý ngoại lệ chung nếu có sự cố trong khi kiểm tra chức năng.

Mã mẫu

Đoạn mã sau tìm nạp định nghĩa của nhiều hàm -

import boto3
from botocore.exceptions import ClientError

def get_multiple_function_definition(database_name =None, regular_pattern = None):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_user_defined_functions(DatabaseName=database_name,Pattern= regular_pattern)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in get_multiple_function_definition: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in get_multiple_function_definition: " + e.__str__())
a = get_multiple_function_definition('employee')
print(a)

Đầu ra

{
   'UserDefinedFunctions':[{
      'FunctionName': 'insert_employee_record',
      'DatabaseName': 'employee',
      'ClassName': 'InsertEmployee',
      'OwnerName': 'string',
      'OwnerType': 'USER'|'ROLE'|'GROUP',
      'CreateTime': datetime(2021,03,15),
      'ResourceUris':[
         {
            'ResourceType': 'JAR'|'FILE'|'ARCHIVE',
            'Uri': 'string'
         },
      ]
   }]
}