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 年前205 查看次数
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 年前

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

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

回答问题的准则