如何将步骤函数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
專家
已提問 6 個月前檢視次數 9 次
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
專家
已回答 6 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南