Get min/max value between 2 argument in step function

0

Hi I have scenario to get min value between 2 argument and compare it with constant to make condition true/false, I can see interstice function but don't get this method like min/max. Other than that, I can get this approach using lambda.

So since this simple operation, can I get this inside step function instead ?

gefragt vor 6 Monaten531 Aufrufe
2 Antworten
1

There is no intrinsic function to get min/max of two numbers. Besides using a Lambda function, you can use a choice state to check which one of the two numbers is larger, and then another choice state to check if it is equal to the constant value.

profile pictureAWS
EXPERTE
Uri
beantwortet vor 6 Monaten
0

As you noticed, there are no min/max functions available in Step Functions, however you can try something like this to compare two variables between each other and constant.

It's based on simple logic that can be coded as

a = 4
b = 5
const = 1

if a < b and a < const:
    print("a is smaller")
elif b < a and b < const:
    print("b is smaller")

Ecample (working) Step Function code:

{
  "Comment": "Check minimum state machine",
  "StartAt": "Choice",
  "States": {
    "Choice": {
      "Type": "Choice",
      "Choices": [
        {
          "And": [
            {
              "Variable": "$.a",
              "NumericLessThanPath": "$.b"
            },
            {
              "Variable": "$.a",
              "NumericLessThanPath": "$.const"
            }
          ],
          "Next": "A is smaller"
        },
        {
          "And": [
            {
              "Variable": "$.b",
              "NumericLessThanPath": "$.a"
            },
            {
              "Variable": "$.b",
              "NumericLessThanPath": "$.const"
            }
          ],
          "Next": "B is smaller"
        }
      ],
      "Default": "Const not reached"
    },
    "A is smaller": {
      "Type": "Pass",
      "End": true
    },
    "Const not reached": {
      "Type": "Pass",
      "End": true
    },
    "B is smaller": {
      "Type": "Pass",
      "End": true
    }
  }
}
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