Possible to have a single parameter receive its value conditionally?

0

I have a parameter 'request_id' that I want to have get an ID from two different formats of JSON that get sent to the input of my step function task.

The first form looks like this:

{ "request_id": "abcde-abcd-abcde-abc" }

The second is in this form:

{ "request": { "id": "abcde-abcd-abcde-abc", }

Currently, I have a parameter which looks like

"request_id.$": "$.request_id"

but would like something that is equivalent to (this one does not work)

"request_id.$": "$.['request_id','request.id']"

The step function task looks like this

"Processing Error": {
              "Type": "Task",
              "Resource": "${UpdateRequestStatus.Arn}",
              "Parameters": {
                "status": "ERROR",
                "status_reason": "Failed to process data.",
                "domain_name.$": "$.domain_name",
                "client_id.$": "$.client_id",
                *"request_id.$": "$.request_id"*
              },
              "Next": "Processing Failed"

Is this possible within the step function or will I need to either split those two request id's up into two paths in my JSON or do it in a function?

已提問 3 年前檢視次數 206 次
1 個回答
0

Hello,

I believe this capability is not possible through JsonPath.
I would suggest you normalize the input data to the state OR as you mentioned, possibly have a state prior to the task state that will handle these 2 conditions and normalize it before it reaches the task state.

AWS
已回答 3 年前

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

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

回答問題指南