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

ใช้ Boto3 เริ่ม Workflow ใน AWS Glue Data Catalog

ภาพรวม

สาธิตการเริ่ม workflow run ใหม่ใน AWS Glue โดยใช้ start_workflow_run ของ boto3

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

import boto3
from botocore.exceptions import ClientError

def start_workflow(workflow_name):
    session = boto3.session.Session()
    glue_client = session.client('glue')
    try:
        response = glue_client.start_workflow_run(Name=workflow_name)
        return response
    except ClientError as e:
        raise Exception(f"boto3 client error: {e}")
    except Exception as e:
        raise Exception(f"Unexpected error: {e}")

# ใช้งาน
result = start_workflow("test-daily")
print(f"Workflow เริ่มแล้ว RunId: {result['RunId']}")

ผลลัพธ์

{
    'RunId': 'wr_64e880240692fddd5e1b19aed587f856bc20a96f54bc',
    'ResponseMetadata': {
        'RequestId': '782e953b-8ee3-4876-9b2c-cd35e147b513',
        'HTTPStatusCode': 200,
        ...
    }
}

คำอธิบาย

  • ส่งคืน RunId ที่ใช้ติดตามและจัดการ workflow run นี้
  • Workflow จะรันตาม trigger และ job ที่กำหนดไว้ใน workflow definition
  • ต้องมี permission glue:StartWorkflowRun

การใช้งานร่วมกับ stop_workflow

# เริ่ม workflow
run_info = start_workflow("my-workflow")
run_id = run_info['RunId']

# ... ทำงานอื่นๆ ...

# หยุด workflow ถ้าจำเป็น
stop_workflow("my-workflow", run_id)