作业内的AWS Glue Access工作流参数

2024-04-24 23:13:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从粘合作业中检索粘合工作流参数?在

我有一个类型为“pythonshell”的AWS Glue作业,它是从Glue工作流中定期触发的。在

作业的代码将在大量不同的工作流中被重用,因此我希望检索工作流参数,以消除对冗余作业的需要。在

《AWS开发者指南》提供了以下教程: https://docs.aws.amazon.com/glue/latest/dg/workflow-run-properties-code.html

但是我没有成功地让示例代码在没有触发错误的情况下执行。我怀疑这个例子可能只适用于scala/pyspark作业,而不适用于pythonshell作业。在

我在相关工作中尝试了以下代码

import sys
import boto3
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv, ['JOB_NAME','WORKFLOW_NAME', 'WORKFLOW_RUN_ID'])
workflow_name = args['WORKFLOW_NAME']
workflow_run_id = args['WORKFLOW_RUN_ID']
workflow_params = glue_client.get_workflow_run_properties(Name=workflow_name,
                                    RunId=workflow_run_id)["RunProperties"]

print(workflow_name, workflow_run_id, workflow_params)

当我按需触发工作流时,我收到以下错误消息:

^{pr2}$

Tags: run代码nameimportawsid参数作业
1条回答
网友
1楼 · 发布于 2024-04-24 23:13:04

boto3库为您提供了一个有趣的函数

glue = boto3.client(service_name='glue', region_name="my-region")
job = glue.get_job(JobName="my-job-name")

default_parameters = job['Job']['DefaultArguments']
default_parameters[u' my-parameter']

通过这种方式,您应该能够通过default_parameter操作胶水作业参数。我不确定它是否能直接在Glue作业中工作,但是外部脚本应该能够处理Glue Job参数。在

相关问题 更多 >