无法将数组传递给 AWS StepFunction 中的参数
Cannot pass array to parameter in AWS StepFunction
我正在使用 EMR 开发 AWS StepFunction。
我的输入看起来像这样。
{
"dt":"20210101"
}
因为我想 运行 在 EMR 中进行 spark-submit,所以我使用 HadoopJarStep 添加了一个步骤。
我的步骤是这样的。
"Run first step": {
"Type": "Task",
"Resource": "arn:aws:states:::elasticmapreduce:addStep.sync",
"Parameters": {
"ClusterId.$": "$.cluster.ClusterId",
"Step": {
"Name": "My first EMR step",
"ActionOnFailure": "CONTINUE",
"HadoopJarStep": {
"Jar": "command-runner.jar",
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path', '$.dt')"
}
}
},
"ResultPath": "$.firstStep",
"Next": "Terminate Cluster"
我的问题点在这里"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path', '$.dt')"
。
我必须将参数作为数组传递给步骤,但“$.dt”无法正常工作。
我尝试了如下各种方式
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','States.Format(\'s3://some_path\', $.dt)')"
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','States.Format(s3://some_path, $.dt)')"
"Args.$": "['spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path/$.dt']"
但从未成功。
如何通过插值将参数作为数组传递?
尝试去掉 $.dt 周围的引号,这为我解决了这个问题:
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path', $.dt)"
我正在使用 EMR 开发 AWS StepFunction。 我的输入看起来像这样。
{
"dt":"20210101"
}
因为我想 运行 在 EMR 中进行 spark-submit,所以我使用 HadoopJarStep 添加了一个步骤。 我的步骤是这样的。
"Run first step": {
"Type": "Task",
"Resource": "arn:aws:states:::elasticmapreduce:addStep.sync",
"Parameters": {
"ClusterId.$": "$.cluster.ClusterId",
"Step": {
"Name": "My first EMR step",
"ActionOnFailure": "CONTINUE",
"HadoopJarStep": {
"Jar": "command-runner.jar",
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path', '$.dt')"
}
}
},
"ResultPath": "$.firstStep",
"Next": "Terminate Cluster"
我的问题点在这里"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path', '$.dt')"
。
我必须将参数作为数组传递给步骤,但“$.dt”无法正常工作。
我尝试了如下各种方式
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','States.Format(\'s3://some_path\', $.dt)')"
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','States.Format(s3://some_path, $.dt)')"
"Args.$": "['spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path/$.dt']"
但从未成功。
如何通过插值将参数作为数组传递?
尝试去掉 $.dt 周围的引号,这为我解决了这个问题:
"Args.$": "States.Array('spark-submit','--deploy-mode','client', 's3://script_path.py','s3://some_path', $.dt)"