如何使用 Boto3 檢查給定 Glue Job 的所有執行狀態?


問題陳述 − 使用 Python 中的 boto3 庫來檢查給定作業的所有執行狀態。

示例 − 獲取名為“run_s3_file_job”的 Glue 作業的所有執行狀態。

解決此問題的方法/演算法

步驟 1 − 匯入 boto3 和 botocore 異常以處理異常。

步驟 2job_name 是必需引數。該函式將獲取給定 job_name 的詳細資訊。

步驟 3 − 使用 boto3 庫建立 AWS 會話。確保在預設配置檔案中提到了region_name。如果未提及,則在建立會話時顯式傳遞region_name

步驟 4 − 為 Glue 建立 AWS 客戶端。

步驟 5 − 現在使用get_job_runs函式並將job_name作為 JobName 引數傳遞。

步驟 6 − 它獲取給定作業的所有過去作業執行的詳細資訊。

步驟 7 − 使用 for 迴圈逐一獲取特定作業執行的詳細資訊。

步驟 8 − 現在,獲取作業的特定狀態和相應的作業執行 ID。如果作業未完成,則狀態可能是正在執行,否則為成功/失敗。

步驟 9 − 如果在檢查作業時出現問題,則處理通用異常。

示例

使用以下程式碼檢查給定作業的所有執行狀態:

import boto3
from botocore.exceptions import ClientError

def get_status_of_job_all_runs(job_name):
   session = boto3.session.Session()
   glue_client = session.client('glue')
   try:
      response = glue_client.get_job_runs(JobName=job_name)
      for res in response['JobRuns']:
         print("Job Run id is:"+res.get("Id"))
         print("status is:"+res.get("JobRunState"))
   except ClientError as e:
      raise Exception("boto3 client error in get_status_of_job_all_runs: " + e.__str__())
   except Exception as e:
      raise Exception("Unexpected error in get_status_of_job_all_runs: " + e.__str__())
get_status_of_job_all_runs("run_s3_file_job"))

輸出

job id
is:jr_6ef92e90ad66b1a6c7abb1c2659d114a34962b8c6ae4bf9b328ac90b99a33b7d
status is:FAILED
job id
is:jr_9fef13265036406e03e7cae79257305353203ab20b5f400e0c429e10a4999dba
status is:FAILED
job id
is:jr_f9d715a33e83460fc2ef6dee0840a98ef52c06c2ff569627633c4505fda7d835
status is:FAILED
job id
is:jr_71b57633ac4d8c24f904f0ae01f613f6d54baee440d0ede23f6030cffb0bf4d7
status is:FAILED
job id
is:jr_b7ead6b6ae43da2580888c73d6896c177510df73bd77c843d3e77b4dc5f22e2f
status is:FAILED
job id
is:jr_6e757509d51066648d49c22a47c26e728d6f842a1c5d2fd4f41941ca868460e6
status is:FAILED
job id
is:jr_89c1a7b8ea045fac36d25733d7fc657d3560eb159e7e122a8960981dd225a9d0
status is:FAILED
job id
is:jr_87522bcb924e41a6cf0294185b0a09e46a4ff4c67db5007ff7c10f959836a44b
status is:FAILED
job id
is:jr_08bb54854c8e5c60e96a3e2bade1184963973c1ea7a1e760029e740d4c4c5d7d
status is:FAILED
job id
is:jr_540a90407bb7fbde72b3e1d6cbc98c3b246c21c87d836ff389491bf95520bb41
status is:FAILED
job id
is:jr_f27227cb16ec9d3df665d8753b09c2e2d24d5b5e5263f3d3f17a9bd4669bee67
status is:FAILED
job id
is:jr_a1ae4ad2edcbdac5c948b8be92a79a37c27517113364ddc88c8a93bc712fe6c1
status is:SUCCEEDED

更新於: 2021年3月23日

735 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.