如何将步骤函数startExecution的输入传递给执行的函数?

0

【以下的问题经过翻译处理】 我正试图使用步骤函数startExecution状态将状态机分解成两部分,并且我想将startExecution函数的输入传递给执行的函数,例如:

"Process chunk": {
            "Type": "Task",
            "Resource": "arn:aws:states:::states:startExecution",
            "Parameters": {
              "StateMachineArn": "arn:aws:states:us-west-1:12345:stateMachine:Ingestion-process-parts",
              "Input": "$.input.MessageDetails"  
            },
            "End": true,
            "ResultPath": "$.input.MessageDetails"
          }



其中startExecution输入为

“input”:{
    “MessageNumber”:0,
    “MessageDetails”:“< S3 URL>”
  },

但是无论我为执行状态机的输入尝试什么,它都仅传递一个文字值,即在上述情况下,它传递了

“input”:{
    “MessageDetails”:“$ .input.MessageDetails”,
    “AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID”:“arn:aws:states:us-west-1:1234:execution:Ingestion-Chunk-CSV:055ede1a-dc03-4412-a341-d3b6611dbed4”
  },

请注意,相同的输入解析对于结果有效:

{
  "name": "Process chunk",
  "output": {
    "MessageNumber": 0,
    "MessageDetails": "<an S3 URL>",

似乎正常的使用$ ...解析输入的方法对于此目的无效。如何能够实现我想要的?

profile picture
专家
已提问 5 个月前7 查看次数
1 回答
0

【以下的回答经过翻译处理】 根据此处记录, 若值是通过路径选择的,则键名必须以 . $ 结尾。

你需要做的是以下操作:

"Process chunk": {
     "Type": "Task",
     "Resource": "arn:aws:states:::states:startExecution",
     "Parameters": {
          "StateMachineArn": "arn:aws:states:us-west-1:12345:stateMachine:Ingestion-process-parts",
          "Input.$": "$.input.MessageDetails"  
     },
     "End": true,
     "ResultPath": "$.input.MessageDetails"
 }

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则