Для задания Glue в рабочем процессе Glue - учитывая идентификатор запуска Glue, как получить доступ к идентификатору запуска Glue Workflow?
Рабочий процесс AWS Glue связан с несколькими заданиями AWS Glue.
Как получить идентификатор рабочего процесса для заданного идентификатора выполнения задания AWS Glue?
Я не могу найти api в aws-cli.
Обратите внимание, что я пытаюсь анализировать показатели выполнения заданий с помощью внешнего кода Python.
2 ответа
Вы можете использовать пользовательскую функцию, подобную этой, построенную поверхboto3
библиотека:
def get_wid_from_jid(jid: str) -> str:
client = boto3.client('glue', region_name='us-east-1')
response = client.list_workflows()
jid_to_wid = {}
for workflow in response.get('Workflows', []):
response2 = client.get_workflow_runs(Name=workflow, IncludeGraph=True)
for run in response2.get('Runs', []):
wid = run.get('WorkflowRunId')
for node in run.get('Graph', {'Nodes': []}).get('Nodes', []):
for job in node.get('JobDetails', {'JobRuns': []}).get('JobRuns', []):
jid2 = job.get('Id')
if wid and jid2:
jid_to_wid[jid2] = wid
return jid_to_wid.get(jid, 'Error: Glue Job Run ID unknown.')
И вы можете запустить эту функцию, как показано ниже:
print(get_wid_from_jid('TestingFailScenarioHere'))
# Output:
# Error: Glue Job Run ID unknown.
print(get_wid_from_jid('jr_xxxxxxxxxxxxxxxxxxxx'))
# Output:
# wr_xxxxxxxxxxxxxxxxx
Вы можете использовать этот код, чтобы получить runID
- импорт boto3
- из awsglue.utils import getResolvedOptions
- glue_client = boto3.client(«клей»)
- args = getResolvedOptions(sys.argv, ['JOB_NAME','WORKFLOW_NAME', 'WORKFLOW_RUN_ID'])
- runID = args['WORKFLOW_RUN_ID']