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

Làm cách nào để sử dụng Boto3 để xóa cơ sở dữ liệu khỏi Danh mục dữ liệu AWS?

Tuyên bố sự cố - Sử dụng thư viện boto3 bằng Python để xóa cơ sở dữ liệu, được tạo trong tài khoản của bạn.

Ví dụ - Xóa cơ sở dữ liệu 'Danh mục đầu tư' đượ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 các ngoại lệ boto3 và botocore để xử lý các ngoại lệ.

Bước 2 - Truyền tham số database_name sẽ bị xóa khỏi Danh mục keo AWS.

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ờ sử dụng chức năng delete_database và chuyển database_name làm tham số Name.

Bước 6 - Nó sẽ xóa cơ sở dữ liệu và trả về siêu dữ liệu phản hồi.

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.

Lưu ý : Sau khi hoàn thành thao tác này, người dùng sẽ không thể truy cập vào các bảng (và tất cả các phiên bản bảng và phân vùng thuộc về các bảng) và các chức năng do người dùng xác định (các thủ tục được lưu trữ) trong cơ sở dữ liệu đã xóa. AWS Glue xóa các tài nguyên "mồ côi" không đồng bộ này một cách kịp thời theo quyết định của dịch vụ.

Ví dụ

Sử dụng mã sau để xóa cơ sở dữ liệu khỏi Danh mục dữ liệu AWS Glue -

import boto3
from botocore.exceptions import ClientError

def delete_a_database(database_name):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.delete_database(Name=database_name)
   return response
   except ClientError as e:
      raise Exception( "boto3 client error in delete_a_database: " + e.__str__())
   except Exception as e:
      raise Exception( "Unexpected error in delete_a_database: " + e.__str__())

print(delete_a_database("Portfolio"))

Đầu ra

{'ResponseMetadata': {'RequestId': '067b667f-0a74d4f30a5b',
'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021
14:54:30 GMT', 'content-type': 'application/x-amz-json-1.1', 'contentlength': '2', 'connection': 'keep-alive', 'x-amzn-requestid': '067b667f0a10-4f99-91be-0a74d4f30a5b'}, 'RetryAttempts': 0}}