gpt4 book ai didi

amazon-web-services - AWS : Passing Job parameters Value to Glue job from Step function

转载 作者:行者123 更新时间:2023-12-05 09:10:22 33 4
gpt4 key购买 nike

我创建了 3 个 Glue 作业,它们具有如下作业参数键/值之一:runid id

如果我像这样使用 AWS CLI 执行 Glue 作业,它工作正常:aws glue start-job-run --jobname $job --arguments='--runid="Runid_10"'

这 3 个 Glue 作业在一步函数和状态机中定义为:

{
"Comment":"Sample Step Function",
"StartAt":"First Glue Job",
"States": {
"First Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Firstjob"
},
"Next": "Second Glue Job"
},
"Second Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Secondjob"
},
"Next": "Third Glue Job"
},
"Third Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Thirdjob"
},
"End": true
}
}
}

如果我尝试使用输入参数执行此状态机,则此输入参数值不会传递给 Gluejob。我是否需要修改状态机作业定义以将输入参数值传递给作为状态机运行的一部分传递的 Glue 作业。请指导我如何操作。

aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld --input "{runid":"Runid_10"}

状态机正在成功执行,但 Runid 值未传递给 Gluejob 参数。

请让我知道如何传递具有内部状态机定义的 Glue 作业参数值。


我正在使用这样的 Arguments 参数:

{
"Comment":"Sample Step Function",
"StartAt":"First Glue Job",
"States": {
"First Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Firstjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath" : "$.runid",
"Next": "Second Glue Job"
},
"Second Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Secondjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath" : "$.runid",
"Next": "Third Glue Job"
},
"Third Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Thirdjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath" : "$.runid",
"End": true
}
}
}

在执行“开始执行”状态机期间,在输入可选窗口中传递输入 JSON {"--runid": "runid_10"}。

请注意: runid_n ,其中 n 是整数并且会改变。

我将在 Glue 作业中将 runid_10 值附加到输出文件,输出文件类似于 GlueJob-Firstjob_output_runid_10.csv

最佳答案

您需要将它添加到 Parameters 属性中的 Arguments 中,这样它就像:

"Parameters" : {
"JobName": "GlueJob-Firstjob",
"Arguments": {
"--run_id":"$.runid"
}

}

供您引用,您可以查看。支持的参数部分:here .

更新:您需要在任务定义中添加 ResultPath,例如:

"First Glue Job":{
"Type": "Task",
"Resource": "arn:aws:states:::glue:startJobRun.sync",
"Parameters": {
"JobName": "GlueJob-Firstjob",
"Arguments": {
"--runid":"$.runid"
}
},
"ResultPath": "$.output"
}

关于amazon-web-services - AWS : Passing Job parameters Value to Glue job from Step function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61545287/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com