如何将步骤函数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달 전8회 조회
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달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인

관련 콘텐츠