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

Cách lấy chi tiết của một chức năng do người dùng xác định trong cơ sở dữ liệu từ danh mục Dữ liệu Keo AWS bằng Boto3

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

Ví dụ

Nhận chi tiết về định nghĩa hàm có tên là insert_employee_record trong cơ sở dữ liệu nhân viên .

Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để nhận chi tiết về định nghĩa hàm được chỉ định từ 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 boto3 botocore các ngoại lệ để xử lý các ngoại lệ.

  • Bước 2: database_name function_name là các tham số bắt buộc. Nó tìm nạp định nghĩa của một function_name đã cho trong một cơ sở dữ liệu nhất định.

  • 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_user_defined_ Chức năng và chuyển database_name dưới dạng DatabaseName và function_name dưới dạng tham số FunctionName.

  • Bước 6: Nó trả về định nghĩa của một hàm đã cho. Nếu nó không tìm thấy chức năng đã cho, nó sẽ báo lỗi.

  • 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 một hàm đã cho -

import boto3
from botocore.exceptions import ClientError

def get_function_definition(database_name, function_name):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_user_defined_function(DatabaseName=database_name, FunctionName=function_name)
      return response
   except ClientError as e:
      raise Exception("boto3 client error in get_function_definition: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in get_function_definition: " + e.__str__())
a = get_function_definition('employee', 'insert_employee_record')
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'
         },
      ],
   }
}