Aws lambda 从AWS Lambda向粘合作业传递参数

Aws lambda 从AWS Lambda向粘合作业传递参数,aws-lambda,aws-glue,Aws Lambda,Aws Glue,我们需要将4个参数从AWS Lambda传递到AWS Glue job,同时触发Glue job response = client.start_job_run(JobName = 'my_test_Job', Arguments = { '--yr_partition_val': 2017, '--mon_partition_val': 05, '--date_partition_val': 25,

我们需要将4个参数从AWS Lambda传递到AWS Glue job,同时触发Glue job

response = client.start_job_run(JobName = 'my_test_Job',
         Arguments = {
           '--yr_partition_val':   2017,
           '--mon_partition_val':  05,
           '--date_partition_val':  25,
           '--hour_partition_val': 07 } )
Glue需要捕获这4个参数,以便在pyspark Glue代码中进一步处理

我已尝试在glue中使用以下参数:

import sys
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv,
                      ['JOB_NAME',
                       'yr_partition_val',
                       'mon_partition_val',
                       'date_partition_val',
                       'hour_partition_val'])
但得到的错误是:

self.error(_('argument %s is required') % name)
awsglue.utils.GlueArgumentError: argument --JobName is required
有人能帮忙吗

“--JOB_NAME”
是胶水的内部属性,不应设置。 此外,参数区分大小写

从呼叫时-

胶水原料药

Name='job\u Name\u value'
需要指定为第一个参数

Lambda API

JobName='job\u name\u value'
需要指定为第一个参数 参见下面的示例:

    current_year_full = '2019'
    current_month = '01'
    current_day = '21' 
    current_hour = '01'
    int_bucket_name = 'datascience-ca-input'
    glue_job_name = os.getenv("job_name")
    response = gl.start_job_run(
            JobName = glue_job_name,
            Arguments = {
                '--intermediate_bucket_name': int_bucket_name,
                '--year_partition_value': current_year_full,
                '--month_partition_value': current_month,
                '--date_partition_value': current_day,
                '--hour_partition_value': current_hour } )

得到答案,需要在粘合作业中添加--Jobname作为参数。基本上,在glue job的高级配置中,我们需要在键中添加--Jobname,在值中添加相应的glue job name。其余内容与链接中的“在AWS Glue中传递和访问Python参数”部分相同:我认为您不必添加--Jobname参数。一定还有别的问题。对我来说,代码在不显式添加--Jobname参数的情况下工作
JobName='my\u test\u Job'
应添加--JobName参数。