ภาพรวม
สาธิตการเริ่ม 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)