如何将步骤函数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
EXPERTE
gefragt vor 6 Monaten9 Aufrufe
1 Antwort
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
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen