我有一个状态机,它有很多任务和并行状态。我的状态机计划每天运行,但我希望我的并行状态只在每个月的22日运行。在所有其他日子里,并行状态应该被跳过。
有什么想法/建议,我可以如何实现这个状态机日期运行条件?

{
"StartAt": "Choice State Name?",
"States": {
"Choice State Name?": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.StateName",
"IsPresent": false,
"Next": "Daily_Job_1"
},
{
"Variable": "$.StateName",
"StringEquals": "Daily_Job_1",
"Next": "Daily_Job_1"
},
{
"Variable": "$.StateName",
"StringEquals": "Parallel_Chain",
"Next": "Parallel_Chain"
},
{
"Variable": "$.StateName",
"StringEquals": "Daily_Job_3",
"Next": "Daily_Job_3"
}
],
"Default": "Job Failed"
},
"Job Failed": {
"Type": "Fail"
},
"Daily_Job_1": {
"Next": "Parallel_Chain",
"Type": "Task",
"ResultPath": null,
"Resource": "arn:aws:states:::batch:submitJob.sync",
"Parameters": {
"JobDefinition": "arn:aws:batch:us-west-2:XXXXX:job-definition/dataservices-batch-job-definition-poc:1",
"JobName": "Daily_Job_1",
"JobQueue": "arn:aws:batch:us-west-2:XXXXX:job-queue/getting-started-job-queue-batch-poc",
"ContainerOverrides": {}
}
},
"Parallel_Chain": {
"Type": "Parallel",
"ResultPath": null,
"Next": "Daily_Job_3",
"Branches": [
{
"StartAt": "Daily_Job_2a",
"States": {
"Daily_Job_2a": {
"Next": "Daily_Job_2b",
// ... rest like Daily_Job_1
},
"Daily_Job_2b": {
"End": true,
// ... rest like Daily_Job_1
}
}
},
{
"StartAt": "Daily_Job_2c",
"States": {
"Daily_Job_2c": {
"Next": "Daily_Job_2d",
// ... rest like Daily_Job_1
},
"Daily_Job_2d": {
"Next": "Daily_Job_2e",
// ... rest like Daily_Job_1
},
"Daily_Job_2e": {
"End": true,
// ... rest like Daily_Job_1
}
}
}
]
},
"Daily_Job_3": {
"End": true,
// ... rest like Daily_Job_1
},
"TimeoutSeconds": 7200
}发布于 2022-01-03 21:36:10
TL;博士在决定是否运行ParallelState之前查找当前日期
在ParallelState之前放置Lambda任务和双分支选择状态.Lambda根据当前日期将布尔值(javascript:(new Date).getDay() === 22)输出到$.shouldRunParallel。Lambda之后的一个新的选择状态继续到Parallel_Chain状态,如果$.shouldRunParallel是true,则跳过它,如果是false。
day === 22:lambda任务,选择任务true分支,Parallel_State,Daily_Job_3day !== 22:lambda任务,选择任务false分支,Daily_Job_3Daily_Job_1,然后继续Parallel_ChainDaily_Job_3https://stackoverflow.com/questions/70570428
复制相似问题