是否可以创建将使用多个参数运行同一作业的AWS Glue工作流程?

时间:2020-10-30 21:58:00

标签: aws-glue

看起来我不能一次将同一作业添加到工作流程中,但是我需要使用不同的参数多次运行同一Glue作业。不可能吗?

1 个答案:

答案 0 :(得分:0)

是的,您始终可以在工作流程中设置属性,然后可以在工作中访问它们,如下所示。有关更多信息,请参见this链接。

import sys
import boto3
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from awsglue.context import GlueContext
from pyspark.context import SparkContext

glue_client = boto3.client("glue")
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"]

target_database = workflow_params['target_database']
target_s3_location = workflow_params['target_s3_location']

现在,如果您希望每次运行都更改属性,则可以使用put_workflow_run_properties API调用进行相同的操作。可以安排它在您的实际作业开始执行之前运行,以便更新参数。该API调用可以通过lambda进行调度,也可以作为工作流的一部分进行调度,该工作流将在实际作业开始执行之前运行。