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

Làm thế nào để sử dụng Boto3 để có được trạng thái của một hoạt động di chuyển?

Tuyên bố sự cố - Sử dụng thư viện boto3 trong Python để nhận trạng thái của hoạt động di chuyển.

Ví dụ - Nhận trạng thái của hoạt động di chuyển trong tài khoả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ố catalog_id có trạng thái di chuyển cần kiểm tra. Tuy nhiên, đây là một tham số tùy chọn. Nếu nó không được cung cấp, theo mặc định, nó sẽ kiểm tra tài khoản người dùng đã đăng nhập xem quá trình di chuyển đang diễn ra hay đã hoàn tất. catalog_id không gì khác ngoài id tài khoản người dùng.

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 - Gọi get_catalog_import_status và chuyển catalog_id làm tham số CatalogId.

Bước 6 - Nó sẽ tìm nạp thông tin chi tiết về hoạt động di chuyển đang diễn ra. Nếu không, nó sẽ tìm nạp chi tiết lần di chuyển cuối cùng.

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.

Ví dụ

Sử dụng mã sau để nhận trạng thái của hoạt động di chuyển -

import boto3
from botocore.exceptions import ClientError

def status_of_migration(catalog_id = None):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_catalog_import_status(CatalogId = catalog_id)
      return response
   except ClientError as e:
      raise Exception( "boto3 client error in status_of_migration: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in status_of_migration: " + e.__str__())

print(status_of_migration())

Đầu ra

{'ImportStatus': {'ImportCompleted': True, 'ImportTime':
datetime.datetime(2017, 11, 17, 1, 32, 44, tzinfo=tzlocal()),
'ImportedBy': 'StatusSetByDefault'}, 'ResponseMetadata': {'RequestId':
'7c33d6f9-……………..-3b202961e3e7', 'HTTPStatusCode': 200, 'HTTPHeaders':
{'date': 'Sun, 21 Feb 2021 05:40:06 GMT', 'content-type':
'application/x-amz-json-1.1', 'content-length': '102', 'connection':
'keep-alive', 'x-amzn-requestid': '7c33d6f9-…….…………-3b202961e3e7'},
'RetryAttempts': 0}}