Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีดึงรายละเอียด Workflow จาก AWS Glue Data Catalog ด้วย Boto3

บทความนี้แสดงวิธีใช้ Boto3 (AWS SDK for Python) ดึงข้อมูลเมตาของ Workflow จาก AWS Glue Data Catalog

ปัญหา

ใช้ Boto3 ใน Python เพื่อดึงข้อมูลเมตาของ Workflow ที่สร้างในบัญชี AWS ของคุณ

ขั้นตอน/อัลกอริทึม

  1. Import boto3 และ botocore.exceptions.ClientError สำหรับจัดการข้อผิดพลาด
  2. workflow_name เป็นพารามิเตอร์บังคับ สำหรับระบุ Workflow ที่ต้องการดึง
  3. สร้าง AWS Session ด้วย Boto3 ต้องระบุ region_name ในโปรไฟล์เริ่มต้น หรือระบุชัดเจนตอนสร้าง Session
  4. สร้าง AWS Client สำหรับบริการ glue
  5. เรียก get_workflow(Name=workflow_name)
  6. คืนค่าข้อมูลเมตาของ Workflow
  7. จัดการ Exception ทั่วไปหากเกิดข้อผิดพลาด

ตัวอย่างโค้ด

import boto3
from botocore.exceptions import ClientError

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

a = get_resource_metadata_of_workflow('dev-aiml-naviga-ods-load')
print(a)

ผลลัพธ์

{'Workflow': {'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}}