Для задания 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']
Другие вопросы по тегам