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 - Không cần tham số cho chức năng này. Nó sẽ tìm nạp tất cả các trình kích hoạt được liệt kê cho tài khoản người dùng và sau đó hiển thị siêu dữ liệu của từng trình kích hoạt.
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 hàm list_workflows để nhận tất cả các công việc được liệt kê trong tài khoản người dùng.
Bước 6 - Gọi batch_get_workflows và chuyển các tên công việc được tìm nạp trong chức năng trước đó.
Bước 7 - Nó trả về list_of_workflows và siêu dữ liệu của từng quy trình công việc.
Bước 8 - 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 để tìm nạp chi tiết của từng dòng công việc được tạo trong tài khoản người dùng -
import boto3 from botocore.exceptions import ClientError def get_resource_maetadata_of_workflows(): session = boto3.session.Session() glue_client = session.client('glue') try: list_of_workflows = glue_client.list_workflows() response = glue_client.batch_get_workflows( Names=list_of_workflows['Workflows']) return list_of_workflows, response except ClientError as e: raise Exception( "boto3 client error in get_resource_maetadata_of_workflows: " + e.__str__()) except Exception as e: raise Exception( "Unexpected error in get_resource_maetadata_of_workflows: " + e.__str__()) a, b = get_resource_maetadata_of_workflows() #List of Workflows print(a) #Resource metadata of each Workflow print(b)
Đầu ra
#List of Workflows {'Workflows': ['dev-aiml-naviga-ods-load'], 'ResponseMetadata': {'RequestId': '556890ce-bcd1-4bb0-9c33-3ae1db13f3a9', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 13:57:37 GMT', 'contenttype': 'application/x-amz-json-1.1', 'content-length': '91', 'connection': 'keep-alive', 'x-amzn-requestid': '556890ce-bcd1-4bb0- 9c33-3ae1db13f3a9'}, 'RetryAttempts': 0}} #Resource metadata of each Workflow {'Workflows': [{'Name': 'dev-aiml-naviga-ods-load', 'DefaultRunProperties': {}, 'CreatedOn': datetime.datetime(2020, 5, 27, 3, 10, 57, 967000, tzinfo=tzlocal()), 'LastModifiedOn': datetime.datetime(2020, 5, 27, 3, 10, 57, 967000, tzinfo=tzlocal())}, 'StartedOn': datetime.datetime(2021, 2, 3, 16, 14, 48, 795000, tzinfo=tzlocal()), 'CompletedOn': datetime.datetime(2021, 2, 3, 16, 28, 6, 207000, tzinfo=tzlocal()), 'Status': 'COMPLETED', 'Statistics': {'TotalActions': 3, 'TimeoutActions': 0, 'FailedActions': 0, 'StoppedActions': 0, 'SucceededActions': 3, 'RunningActions': 0}}}, 'MissingWorkflows': [], 'ResponseMetadata': {'RequestId': 'b328d064- 24ab-48c4-b058-852387a3d474', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 27 Feb 2021 13:57:37 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '2655', 'connection': 'keep-alive', 'x-amzn-requestid': 'b328d064-24ab-48c4-b058- 852387a3d474'}, 'RetryAttempts': 0}}