คำชี้แจงปัญหา − ใช้ไลบรารี boto3 ใน Python เพื่อรันงานกาว ตัวอย่างเช่น เรียกใช้งาน run_s3_file_job
แนวทาง/อัลกอริทึมในการแก้ปัญหานี้
ขั้นตอนที่ 1 - นำเข้าข้อยกเว้น boto3 และ botocore เพื่อจัดการกับข้อยกเว้น
ขั้นตอนที่ 2 − job_name เป็นพารามิเตอร์บังคับในขณะที่อาร์กิวเมนต์เป็นพารามิเตอร์ทางเลือกในฟังก์ชัน งานน้อยใช้อาร์กิวเมนต์ในการทำงาน ในกรณีนั้น อาร์กิวเมนต์สามารถส่งผ่านเป็น dict.
ตัวอย่างเช่น:อาร์กิวเมนต์ ={'arguments1' ='value1', 'arguments2' ='value2'}
ถ้างานไม่โต้เถียง ก็ส่งต่อ job_name ไปเลย
ขั้นตอนที่ 3 − สร้างเซสชัน AWS โดยใช้ไลบรารี boto3 ตรวจสอบให้แน่ใจว่ามีการกล่าวถึง region_name ในโปรไฟล์เริ่มต้น หากไม่มีการระบุ ให้ส่ง region_name อย่างชัดเจนขณะสร้างเซสชัน
ขั้นตอนที่ 4 − สร้างไคลเอนต์ AWS สำหรับกาว
ขั้นตอนที่ 5 - ตอนนี้ใช้ฟังก์ชัน start_job_run และส่ง JobName และอาร์กิวเมนต์หากต้องการ
ขั้นตอนที่ 6 − เมื่องานเริ่มต้น มันจะให้ข้อมูลเมตาของ job_run_id กับงาน
ขั้นตอนที่ 7 − จัดการข้อยกเว้นทั่วไปหากมีข้อผิดพลาดขณะตรวจสอบงาน
ตัวอย่าง
ใช้รหัสต่อไปนี้เพื่อเรียกใช้งานกาวที่มีอยู่ −
นำเข้า boto3 จาก botocore.exceptions นำเข้า ClientErrordef run_glue_job(job_name, อาร์กิวเมนต์ ={}):session =boto3.session.Session() glue_client =session.client('glue') ลอง:job_run_id =glue_client.start_job_run (JobName=job_name อาร์กิวเมนต์ =ข้อโต้แย้ง) ส่งคืน job_run_id ยกเว้น ClientError เป็น e:ยกข้อยกเว้น ( "ข้อผิดพลาดของไคลเอ็นต์ boto3 ใน run_glue_job:" + e.__str__ ()) ยกเว้นข้อยกเว้นเช่น e:ยกข้อยกเว้น ( "ข้อผิดพลาดที่ไม่คาดคิดใน run_glue_job:" + e.__str__ ( ))print(run_glue_job("run_s3_file_job"))