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

จะใช้ไลบรารี Boto3 ใน Python เพื่อรันงานกาวได้อย่างไร


คำชี้แจงปัญหา − ใช้ไลบรารี 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"))

ผลลัพธ์

<ก่อนหน้า>{'JobRunId':'jr_5f8136286322ce5b7d0387e28df6742abc6f5e6892751431692ffd717f45fc00','ResponseMetadata':{'RequestId':'36c48542-a060-468b-83ccb067a540bc3c's 2021 13:36:50 GMT', 'content-type':'application/x-amz-json-1.1', 'content-length':'82', 'connection':'keep-alive', 'x- amzn-requestid':'36c48542-a060-468b-83cc-b067a540bc3c'} 'RetryAttempts':0}}