{
"Comment": "A description of my state machine",
"StartAt": "Batch SubmitJob",
"States": {
"Batch SubmitJob": {
"Type": "Task",
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Parameters": {
"JobDefinition": "arn:aws:batch:us-east-1:XXXXXXXXXXX:job-definition/clientcopyjobdef:1",
"JobQueue": "arn:aws:batch:us-east-1:XXXXXXXXXX:job-queue/copyclientjq",
"ContainerOverrides": {
"Command.$": [
"dotnet",
"CopyClientJob.dll",
"$.input"
]
},
"JobName.$": "$.input"
},
"End": true
}
}
}
我试图创建这个状态机,如果我直接将命令传递给JobDefinition,它工作得很好,但在这里我试图覆盖命令并希望从状态输入传递命令参数,所以尝试像上面那样传递代码。对于 "JobName.$": "$.input"
它正在工作,但是对于
"Command.$": [
"dotnet",
"CopyClientJob.dll",
"$.input"
]
它不起作用,命令按原样传递给 aws 批处理而不转换参数,有人可以帮忙解决这个问题吗? 谢谢
最佳答案
得到了解决方案,实际上我需要使用 States.Array
组合所有 3 个,如下所示
{
"Comment": "A description of my state machine",
"StartAt": "Batch SubmitJob",
"States": {
"Batch SubmitJob": {
"Type": "Task",
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Parameters": {
"JobDefinition": "arn:aws:batch:us-east-1:XXXXXXXXX:job-definition/clientcopyjobdef:1",
"JobQueue": "arn:aws:batch:us-east-1:XXXXXXXX:job-queue/copyclientjq",
"ContainerOverrides": {
"Command.$": "States.Array('dotnet', 'CopyClientJob.dll', $.input)"
},
"JobName": "test"
},
"End": true
}
}
}
关于amazon-web-services - 将参数传递给下一步函数任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71870518/