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 ?

demandé il y a 6 mois532 vues
2 réponses
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
EXPERT
Uri
répondu il y a 6 mois
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
    }
  }
}
répondu il y a 6 mois

Vous n'êtes pas connecté. Se connecter pour publier une réponse.

Une bonne réponse répond clairement à la question, contient des commentaires constructifs et encourage le développement professionnel de la personne qui pose la question.

Instructions pour répondre aux questions